Commit 16f2a73
vuzelac
Demangler for MSVC symbols.
Demangler is implemented using the existing LLVM Demangler.
The demangler is built as a separate library (libdemangle_msvc)
due to the licensing issues - normally, it would be integrated
into libiberty.
The library exposes msvc_demangle() call while BFD adds
bfd_demangle_new() which automatically demangles using
libdemangle_msvc or libiberty. GDB now uses bfd_demangle_new()
instead of bfd_demangle(). Binutils that want MSVC demangling
should switch to the new function as well.
For all it's demangling needs, GDB almost exclusively uses
gdb_demangle(), which returns plain demangled string.
However, GDB also has a few places where it demangles into the
demangle_component AST. These functions are not relavant to
PE/COFF binaries and MSVC demangling, however, the appropriate
functions are added for completeness:
msvc_class_name_from_physname() and msvc_method_name_from_physname().1 parent 95be922 commit 16f2a73
43 files changed
Lines changed: 13765 additions & 35 deletions
File tree
- bfd
- binutils
- doc
- testsuite/binutils-all
- x86-64
- gdb
- include
- libdemangle-msvc
- doc
- testsuite
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
| 146 | + | |
146 | 147 | | |
147 | 148 | | |
148 | 149 | | |
| |||
451 | 452 | | |
452 | 453 | | |
453 | 454 | | |
| 455 | + | |
454 | 456 | | |
455 | 457 | | |
456 | 458 | | |
| |||
498 | 500 | | |
499 | 501 | | |
500 | 502 | | |
| 503 | + | |
501 | 504 | | |
502 | 505 | | |
503 | 506 | | |
| |||
0 commit comments