lkml.org 
[lkml]   [2019]   [Mar]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 01/16] perf: add doc for how to build perf with Asan and UBSan
    On Sat, Mar 16, 2019 at 04:05:41PM +0800, Changbin Du wrote:
    > 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@gmail.com>
    > ---
    > 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

    thanks for adding doc, one nit:

    > +
    > +3) buld and install perf

    there's already:
    2) perf build
    =============

    please use something like

    3) perf build for ASan/UBSan
    ============================

    > + $ cd tools/perf
    > + $ make DESTDIR=/usr
    > + $ make DESTDIR=/usr install
    > +
    > +4) build with ASan or UBSan

    no need for this label

    > +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
    >

    \
     
     \ /
      Last update: 2019-03-18 11:08    [W:3.782 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site