[Issue 14698] Un-mangle symbols in disassembly?
https://issues.dlang.org/show_bug.cgi?id=14698 Rainer Schuetze r.sagita...@gmx.de changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #12 from Rainer Schuetze r.sagita...@gmx.de --- released in https://github.com/D-Programming-Language/visuald/releases/tag/v0.3.42 --
[Issue 14698] Un-mangle symbols in disassembly?
https://issues.dlang.org/show_bug.cgi?id=14698 --- Comment #13 from Rainer Schuetze r.sagita...@gmx.de --- The next version of binutils/gdb will have pretty much near complete 2.068 support. In my local tests, it managed to demangle all symbols in Phobos and druntime (core.demangle barely got 20% - and even then some were massively incorrect). I could use the D demangler from binutils in my tool, too. Also, the mago debug engine might need an update to its demangler. Do you plan to submit those fixes to core.demangle, too? --
[Issue 14698] Un-mangle symbols in disassembly?
https://issues.dlang.org/show_bug.cgi?id=14698 --- Comment #11 from Iain Buclaw ibuc...@gdcproject.org --- (In reply to Rainer Schuetze from comment #9) Support was added in binutils 2.25 I've build this version, but noticed that it doesn't demangle full text files, just the arguments given on the command line. Instead, it reports Internal error: no symbol alphabet for current style. That has an easy fix, though. As cxxfilt will very likely never support compressed symbols aswell as MS mangled symbols, I've compiled my own version supporting all 3 manglings (D/gcc/cl) including compression. Nice wrapper you've got there. The next version of binutils/gdb will have pretty much near complete 2.068 support. In my local tests, it managed to demangle all symbols in Phobos and druntime (core.demangle barely got 20% - and even then some were massively incorrect). --
[Issue 14698] Un-mangle symbols in disassembly?
https://issues.dlang.org/show_bug.cgi?id=14698 --- Comment #10 from Manu turkey...@gmail.com --- Seems to be working great now! --
[Issue 14698] Un-mangle symbols in disassembly?
https://issues.dlang.org/show_bug.cgi?id=14698 --- Comment #9 from Rainer Schuetze r.sagita...@gmx.de --- Support was added in binutils 2.25 I've build this version, but noticed that it doesn't demangle full text files, just the arguments given on the command line. Instead, it reports Internal error: no symbol alphabet for current style. That has an easy fix, though. As cxxfilt will very likely never support compressed symbols aswell as MS mangled symbols, I've compiled my own version supporting all 3 manglings (D/gcc/cl) including compression. Disassembly with demangled symbols is now enabled if the global option Demangle symbols in linker messages/disassembly is checked. Try it in https://github.com/D-Programming-Language/visuald/releases/tag/v0.3.42-beta2 --
[Issue 14698] Un-mangle symbols in disassembly?
https://issues.dlang.org/show_bug.cgi?id=14698 --- Comment #8 from Rainer Schuetze r.sagita...@gmx.de --- What will happen for binaries with both D and C++ symbols? Good question. I was just about to adapt the demangling of linker messages to fit this use case aswell, but C++ symbols are not supported (nor by ddemangle which also doesn't support compressed symbols on Win32). Having two different C++ manglings is not so great, too. For gdc builds you could chain two calls to c++filt if a binary is available. --
[Issue 14698] Un-mangle symbols in disassembly?
https://issues.dlang.org/show_bug.cgi?id=14698 --- Comment #7 from Manu turkey...@gmail.com --- What will happen for binaries with both D and C++ symbols? --
[Issue 14698] Un-mangle symbols in disassembly?
https://issues.dlang.org/show_bug.cgi?id=14698 --- Comment #6 from Iain Buclaw ibuc...@gdcproject.org --- (In reply to Rainer Schuetze from comment #5) Maybe the Windows versions don't have it? I tried c:\l\GDC-2.066\bin\c++filt.exe --version GNU c++filt (crosstool-NG 1.20.0 - 20150413-2.066.1-f378f9ab41) 2.23.1 c:\l\GDC-2.066\bin\c++filt.exe --format=dlang c:\l\GDC-2.066\bin\c++filt.exe: unknown demangling style `dlang' Support was added in binutils 2.25 --
[Issue 14698] Un-mangle symbols in disassembly?
https://issues.dlang.org/show_bug.cgi?id=14698 Iain Buclaw ibuc...@gdcproject.org changed: What|Removed |Added CC||ibuc...@gdcproject.org --- Comment #4 from Iain Buclaw ibuc...@gdcproject.org --- (In reply to Rainer Schuetze from comment #3) GDC is generally bundled with binutils which includes D symbol demangling in the relevant tools(e.g, c++filt, objdump, etc) I don't see any D demangling support in objdump/c++filt in the latest GDC build I could find at http://gdcproject.org/downloads. Any hidden option I should use? -s dlang or --format=dlang --
[Issue 14698] Un-mangle symbols in disassembly?
https://issues.dlang.org/show_bug.cgi?id=14698 --- Comment #5 from Rainer Schuetze r.sagita...@gmx.de --- Maybe the Windows versions don't have it? I tried c:\l\GDC-2.066\bin\c++filt.exe --version GNU c++filt (crosstool-NG 1.20.0 - 20150413-2.066.1-f378f9ab41) 2.23.1 c:\l\GDC-2.066\bin\c++filt.exe --format=dlang c:\l\GDC-2.066\bin\c++filt.exe: unknown demangling style `dlang' --
[Issue 14698] Un-mangle symbols in disassembly?
https://issues.dlang.org/show_bug.cgi?id=14698 --- Comment #3 from Rainer Schuetze r.sagita...@gmx.de --- GDC is generally bundled with binutils which includes D symbol demangling in the relevant tools(e.g, c++filt, objdump, etc) I don't see any D demangling support in objdump/c++filt in the latest GDC build I could find at http://gdcproject.org/downloads. Any hidden option I should use? --
[Issue 14698] Un-mangle symbols in disassembly?
https://issues.dlang.org/show_bug.cgi?id=14698 weaselcat r9shacklef...@gmail.com changed: What|Removed |Added CC||r9shacklef...@gmail.com --- Comment #2 from weaselcat r9shacklef...@gmail.com --- @Rainer GDC is generally bundled with binutils which includes D symbol demangling in the relevant tools(e.g, c++filt, objdump, etc) --
[Issue 14698] Un-mangle symbols in disassembly?
https://issues.dlang.org/show_bug.cgi?id=14698 Rainer Schuetze r.sagita...@gmx.de changed: What|Removed |Added CC||r.sagita...@gmx.de --- Comment #1 from Rainer Schuetze r.sagita...@gmx.de --- Actually, you can get that already by piping the assembly output through ddemangle. Set the disassembly command to something like: $(VCINSTALLDIR)\bin\dumpbin /disasm:nobytes $(InputPath) | ddemangle $(TargetPath) Maybe this should even be the default, though I'm unsure ddemangle is distributed with LDC or GDC. --