Demangling in backtraces
Simon Marchi
simon.marchi@polymtl.ca
Sun Mar 14 02:46:32 GMT 2021
On 2021-03-13 3:55 a.m., Eli Zaretskii via Gdb wrote:
> Ping! Does the silence mean we don't have such a feature in GDB?
>
>> Date: Sat, 06 Mar 2021 20:56:13 +0200
>> From: Eli Zaretskii via Gdb <gdb@sourceware.org>
>>
>> I have built a C program linked against libgccjit. When it crashes,
>> the backtrace shows mangled names, like this:
>>
>> #0 0x70f5ac3e in libgccjit-0!_Z17gimple_build_callP9tree_nodejz ()
>> from D:\usr\bin\libgccjit-0.dll
>> #1 0x7190fa7b in libgccjit-0!_ZN19evrp_range_analyzer5leaveEP15basic_block_def
>> () from D:\usr\bin\libgccjit-0.dll
>> #2 0x71910eef in libgccjit-0!_Z36stmt_uses_0_or_null_in_undefined_wayP6gimple
>> () from D:\usr\bin\libgccjit-0.dll
>> #3 0x710fba2c in libgccjit-0!_Z16execute_one_passP8opt_pass ()
>> from D:\usr\bin\libgccjit-0.dll
>>
>> (This is because libgccjit is written in C++, and because the DLL is
>> stripped.)
>>
>> How can I cause GDB to demangle the function names when showing the
>> backtrace in this case? I tried setting language to c++, but that
>> didn't help.
>>
>> TIA
>>
I don't really know. I've tried making a toy program and shared library
on Linux in C++, without debug symbols, and it "just works":
#0 0x00007ffff7fc00ed in foo(int) () from ./libfoo.so
#1 0x0000555555555147 in main ()
So maybe it's supposed to "just work" on Windows as well and it doesn't?
I don't really have time to dig into it further.
Simon
More information about the Gdb
mailing list