[llvm-commits] [Sanitizer] PATCH: external llvm-symbolizer tool for sanitizers

Alexey Samsonov samsonov at google.com
Thu Aug 23 03:58:27 PDT 2012


And a follow-up from looking at the output. File/line numbers seem to be
fetched correctly, but that isn't always true for function names:
if instruction belongs to inlined instance of a function, then we may (and
often do) instead return the function it is inlined into. This
should be fixed in DebugInfo library, I'll work on that.

On Thu, Aug 23, 2012 at 2:30 PM, Kostya Serebryany <kcc at google.com> wrote:

> Excellent numbers!
> addr2line performance and memory usage has been the greatest inconvenience
> for many users.
> Please commit unless there are objections from someone else.
>
> --kcc
>
>
> On Thu, Aug 23, 2012 at 2:05 PM, Alexey Samsonov <samsonov at google.com>wrote:
>
>> For the record, I've ran some measurements on Chromium (fetched random
>> instruction addresses from binary and symbolized them with a tool):
>>
>> chrome + "-gline-tables-only" (0.5G binary)
>> tool             # of addresses       time                memory
>> addr2line     1                          0m16.803s
>> symbolizer   1                          0m0.501s
>> addr2line     100                       0m22.474s
>> symbolizer   100                       0m1.417s
>> addr2line     10k                       1m45.055s     2.1G
>> symbolizer   10k                       1m23.271s     440 Mb
>>
>> chrome + "-g" (2G binary):
>> addr2line     1                          0m36.101s
>> symbolizer   1                          0m10.101s
>> addr2line     100                       0m46.125s
>> symbolizer   100                       0m10.005s
>> addr2line     10k                       2m32.614s     9.2G
>> symbolizer   10k                       1m41.288s     3.9G
>>
>>
>> On Tue, Aug 21, 2012 at 7:34 PM, Alexey Samsonov <samsonov at google.com>wrote:
>>
>>> Hi!
>>>
>>> This code contains a stand-alone file that makes use of existing LLVM
>>> libraries to symbolize instruction addresses of a module.
>>> Though it looks like an another llvm tool, we can temporary keep it at
>>> //projects/compiler-rt (as currently we're the only interested users,
>>> and we need to compile this tool for the same targets we build ASan/TSan
>>> for). This file may be run in a separate process, and
>>> communicate with caller via stdin/stdout. The key differences from
>>> addr2line is that the tool is capable of symbolizing code from
>>> different modules and is able to consult both symbol table and debug
>>> info for fetching function name (which would be helpful
>>> if the binary is compiled with -gline-tables-only).
>>>
>>> Code review: http://codereview.appspot.com/6465080/
>>>
>>> --
>>> Alexey Samsonov, MSK
>>>
>>>
>>
>>
>> --
>> Alexey Samsonov, MSK
>>
>>
>


-- 
Alexey Samsonov, MSK
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120823/dd0acfc1/attachment.html>


More information about the llvm-commits mailing list