[Lldb-commits] [lldb] [LLDB] Handle i686 mingw32 mangling prefix (PR #160930)

Michael Buch via lldb-commits lldb-commits at lists.llvm.org
Thu Oct 2 00:09:49 PDT 2025


Michael137 wrote:

> > Other C and C++ names don't have it in DWARF though (even on Windows), as your Godbolt link demonstrates.
> 
> 
> 
> I didn't notice this at first, you're right. With PDB, you get these names:
> 
> ```
> 
>   431284 | S_PUB32 [size = 28] `_CFuncCCall`
> 
>            flags = function, addr = 0001:25168
> 
> ```
> 
> My guess is that's because it's created by the linker and not the compiler.
> 
> 
> 
> > I'm still not 100% sure which level we'd want to strip these symbols at. For Mach-O, where we have the `_` prefix too, LLDB strips the prefix when parsing the symbol table.
> 
> 
> 
> For the time being, we could strip only the __cdecl prefix in PDB to match DWARF and open an issue for the mangling of other calling conventions.

Sounds like a good compromise.

Btw, @al45tair pointed out to me that mangled names can appear in multiple places in PDB. One has prefixed mangled names and the other doesnt (i think the one per module doesnt). So you have to make sure we only strip the ones that are actually prefixed

https://github.com/llvm/llvm-project/pull/160930


More information about the lldb-commits mailing list