Re: Demangling in backtraces

Simon Marchi via Gdb <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>

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 <[email protected]>
>>
>> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.