perf tools: Add doc about how to build perf with Asan and UBSan
AddressSanitizer (or ASan) and UndefinedBehaviorSanitizer (or UBSan) are very useful tools to detect program bugs: - AddressSanitizer (or ASan) is a GCC feature that detects memory corruption bugs such as buffer overflows and memory leaks. - UndefinedBehaviorSanitizer (or UBSan) is a fast undefined behavior detector supported by GCC. UBSan detects undefined behaviors of programs at runtime. This patch adds a document about how to use them on perf. Later patches will fix some of the issues disclosed by them. Signed-off-by: Changbin Du <changbin.du@gmail.com> Reviewed-by: Jiri Olsa <jolsa@kernel.org> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Steven Rostedt (VMware) <rostedt@goodmis.org> Link: http://lkml.kernel.org/r/20190316080556.3075-2-changbin.du@gmail.com [ Make some changes based on comments made by Jiri Olsa ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
c3b4d5c4af
commit
af7a14a750
|
@ -47,3 +47,27 @@ Those objects are then used in final linking:
|
|||
|
||||
NOTE this description is omitting other libraries involved, only
|
||||
focusing on build framework outcomes
|
||||
|
||||
3) Build with ASan or UBSan
|
||||
==========================
|
||||
$ cd tools/perf
|
||||
$ make DESTDIR=/usr
|
||||
$ make DESTDIR=/usr install
|
||||
|
||||
AddressSanitizer (or ASan) is a GCC feature that detects memory corruption bugs
|
||||
such as buffer overflows and memory leaks.
|
||||
|
||||
$ cd tools/perf
|
||||
$ make DEBUG=1 EXTRA_CFLAGS='-fno-omit-frame-pointer -fsanitize=address'
|
||||
$ ASAN_OPTIONS=log_path=asan.log ./perf record -a
|
||||
|
||||
ASan outputs all detected issues into a log file named 'asan.log.<pid>'.
|
||||
|
||||
UndefinedBehaviorSanitizer (or UBSan) is a fast undefined behavior detector
|
||||
supported by GCC. UBSan detects undefined behaviors of programs at runtime.
|
||||
|
||||
$ cd tools/perf
|
||||
$ make DEBUG=1 EXTRA_CFLAGS='-fno-omit-frame-pointer -fsanitize=undefined'
|
||||
$ UBSAN_OPTIONS=print_stacktrace=1 ./perf record -a
|
||||
|
||||
If UBSan detects any problem at runtime, it outputs a “runtime error:” message.
|
||||
|
|
Loading…
Reference in New Issue