Issue metadata
Sign in to add a comment
|
Symbolized traces from Clang binaries dont have class names |
||||||||||||||||||||||
Issue descriptionWhat summary says. Heap profiler shows method names, but not classes they belong to (i.e. it shows just "SomeMethod" even if SomeMethod is a member of Foo). Symbolized GCC builds correctly show "Foo::SomeMethod". Example: https://drive.google.com/file/d/0B_Hmi138MnbJY3ZGTTFsMlZub1E/view?usp=sharing
,
Jan 17 2017
Thanks, I'll check. symbol_level was 1 (to avoid creating corrupted .so file).
,
Apr 20 2017
OK, so the problem is in addr2line. src$ nm -C out/Release/lib.unstripped/libchrome.so | grep DeferOrRunPendingTask005db564 t base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) src$ addr2line -e out/Release/lib.unstripped/libchrome.so -f -C 0x005db564DeferOrRunPendingTask That was 2.24, but 2.25 (found in android_tools/ndk) also has this problem. llvm-symbolizer is fine: src$ echo "out/Release/lib.unstripped/libchrome.so 0x005db564" | llvm-symbolizer-3.4 base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) /usr/local/google/code/clankium/src/out/Release/../../base/message_loop/message_loop.cc:432:0 I'm not sure if that is related to the switch from DWARF 4 to 3 (https://codereview.chromium.org/2285723002).
,
Apr 20 2017
src$ addr2line -e out/Release/lib.unstripped/libchrome.so -f -C 0x005db564 DeferOrRunPendingTask /usr/local/google/code/clankium/src/out/Release/../../base/message_loop/message_loop.cc:432
,
Apr 20 2017
Nope, changing back to DWARF-4 doesn't fix the issue: src$ nm -C out/Release/lib.unstripped/libchrome.so | grep DeferOrRunPendingTask 005db564 t base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) src$ addr2line -e out/Release/lib.unstripped/libchrome.so -f -C 0x005db564 DeferOrRunPendingTask /usr/local/google/code/clankium/src/out/Release/../../base/message_loop/message_loop.cc:432
,
Jun 28 2017
It turns out llvm-symbolizer with -use-symbol-table=false also doesn't output class names, i.e. the problem is that debug info section doesn't have class names, while symbol table has them, and addr2line always prefers debug info.
,
Jun 28 2017
,
Jun 28 2017
|
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by primiano@chromium.org
, Jan 17 2017