r199383 - [ASan] Describe online/offline symbolization of reports, mention dsymutil.
Alexander Potapenko
glider at google.com
Thu Jan 16 06:12:31 PST 2014
Done, r199388.
On Thu, Jan 16, 2014 at 6:03 PM, Alexey Samsonov <samsonov at google.com> wrote:
> On Thu, Jan 16, 2014 at 5:46 PM, Alexander Potapenko <glider at google.com> wrote:
>> Author: glider
>> Date: Thu Jan 16 07:46:29 2014
>> New Revision: 199383
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=199383&view=rev
>> Log:
>> [ASan] Describe online/offline symbolization of reports, mention dsymutil.
>>
>> Modified:
>> cfe/trunk/docs/AddressSanitizer.rst
>>
>> Modified: cfe/trunk/docs/AddressSanitizer.rst
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/AddressSanitizer.rst?rev=199383&r1=199382&r2=199383&view=diff
>> ==============================================================================
>> --- cfe/trunk/docs/AddressSanitizer.rst (original)
>> +++ cfe/trunk/docs/AddressSanitizer.rst Thu Jan 16 07:46:29 2014
>> @@ -61,14 +61,13 @@ or:
>> % clang -g -fsanitize=address example_UseAfterFree.o
>>
>> If a bug is detected, the program will print an error message to stderr and
>> -exit with a non-zero exit code. Currently, AddressSanitizer does not symbolize
>> -its output, so you may need to use a separate script to symbolize the result
>> -offline (this will be fixed in future).
>> +exit with a non-zero exit code. To make AddressSanitizer symbolize its output
>> +you need to set the ``ASAN_SYMBOLIZER_PATH`` environment variable to point to
>> +the ``llvm-symbolizer`` binary:
>
>
> Should we mention that it's generally enough to have llvm-symbolizer
> in your PATH?
>
>>
>> .. code-block:: console
>>
>> - % ./a.out 2> log
>> - % projects/compiler-rt/lib/asan/scripts/asan_symbolize.py / < log | c++filt
>> + % ASAN_SYMBOLIZER_PATH=/usr/local/bin/llvm-symbolizer ./a.out
>> ==9442== ERROR: AddressSanitizer heap-use-after-free on address 0x7f7ddab8c084 at pc 0x403c8c bp 0x7fff87fb82d0 sp 0x7fff87fb82c8
>> READ of size 4 at 0x7f7ddab8c084 thread T0
>> #0 0x403c8c in main example_UseAfterFree.cc:4
>> @@ -84,6 +83,23 @@ offline (this will be fixed in future).
>> #2 0x7f7ddabcac4d in __libc_start_main ??:0
>> ==9442== ABORTING
>>
>> +If that does not work for you (e.g. your process is sandboxed), you can use a
>> +separate script to symbolize the result offline (online symbolization can be
>> +force disabled by setting ``ASAN_OPTIONS=symbolize=1``):
>> +
>> +.. code-block:: console
>> +
>> + % ./a.out 2> log
>> + % projects/compiler-rt/lib/asan/scripts/asan_symbolize.py / < log | c++filt
>> + ==9442== ERROR: AddressSanitizer heap-use-after-free on address 0x7f7ddab8c084 at pc 0x403c8c bp 0x7fff87fb82d0 sp 0x7fff87fb82c8
>> + READ of size 4 at 0x7f7ddab8c084 thread T0
>> + #0 0x403c8c in main example_UseAfterFree.cc:4
>> + #1 0x7f7ddabcac4d in __libc_start_main ??:0
>> + ...
>> +
>> +Note that on OS X you may need to run ``dsymutil`` on your binary to have the
>> +file\:line info in the AddressSanitizer reports.
>> +
>> AddressSanitizer exits on the first detected error. This is by design.
>> One reason: it makes the generated code smaller and faster (both by
>> ~5%). Another reason: this makes fixing bugs unavoidable. With Valgrind,
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>
>
> --
> Alexey Samsonov, MSK
--
Alexander Potapenko
Software Engineer
Google Moscow
More information about the cfe-commits
mailing list