使用rebase.exe从msys/mingw gcc构建的dll中提取调试信息?

Kri*_*fer 6 debugging dll mingw windbg msys

我正在尝试分析迷你崩溃转储并需要符号文件以获取有关崩溃的更多详细信息.我目前只是看到:"034eff74 0086eee9 00000000 0089d58d 034eff94 app_integrator!ZNK14ACE_Data_Block4baseEv + 0x6"

是否可以从msys/mingw gcc构建的dll中提取调试信息到windbg可读格式?如果没有,是否有任何其他方式来获取更详细的信息,如以某种方式加载MAP文件?

dll及其包含的.o文件都是使用-g标志构建的.

小智 5

Windbg无法处理mingw安装中-g生成的调试信息.但是,据称可以应对COFF符号.

如果DLL的源文件足够小,则可能需要构建COFF调试信息(-gcoff而不是-g).

因此,Windbg可以(据称)处理COFF符号,GCC可以生成它们.所以它应该很容易,对吗?我试图用Visual Studio 2008生成的Win32可执行文件来加载gcc编译的DLL.不幸的是,使用-gcoff编译不起作用.Mingw的gcc不会为超过64k行代码的项目生成COFF符号.我使用的DLL比64K代码行大得多.可悲的是,我不得不承认,我放弃了可靠的OutputDebugString.否则我将能够提供更完整的指示.我并不想要考虑为更大的源文件制作gcc do COFF符号的选项,或者编写调试扩展以将DWARF或STABS数据解析为windbg的内部符号表的替代选项.

顺便说一句,我解决了这个问题!

更多建议可以在windbg.info的论坛帖子中找到.