AddressSanitizer (or ASan) and UndefinedBehaviorSanitizer (or UBSan) are very useful tools to detect program bugs. o AddressSanitizer (or ASan) is a GCC feature that detects memory corruption bugs such as buffer overflows or memory leaks. o UndefinedBehaviorSanitizer (or UBSan) is a fast undefined behavior detector supprted by GCC. UBSan detect undefined behavior of programs at runtime. This patch adds doc for how to use them on perf. Later patches will fix some of the issues disclosed by them. Signed-off-by: Changbin Du <changbin.du@xxxxxxxxx> --- tools/perf/Documentation/Build.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tools/perf/Documentation/Build.txt b/tools/perf/Documentation/Build.txt index f6fc6507ba55..cae6e1d9b901 100644 --- a/tools/perf/Documentation/Build.txt +++ b/tools/perf/Documentation/Build.txt @@ -47,3 +47,23 @@ Those objects are then used in final linking: NOTE this description is omitting other libraries involved, only focusing on build framework outcomes + +3) buld and install perf + $ cd tools/perf + $ make DESTDIR=/usr + $ make DESTDIR=/usr install + +4) build with ASan or UBSan +AddressSanitizer (or ASan) is a GCC feature that detects memory corruption bugs +such as buffer overflows or 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 log file 'asan.log.<pid>'. + +UndefinedBehaviorSanitizer (or UBSan) is a fast undefined behavior detector +supprted by GCC. UBSan detect undefined behavior 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. \ No newline at end of file -- 2.19.1