[PATCH 01/16] perf: add doc for how to build perf with Asan and UBSan

From: Changbin Du
Date: Sat Mar 16 2019 - 04:06:33 EST


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