gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:16:31 24 4
gpt4 key购买 nike

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

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

dll 及其包含的所有 .o 文件均使用 -g 标志构建。

最佳答案

Windbg 无法处理 mingw 安装时 -g 将生成的调试信息。但是,据称它可以处理 COFF 符号。
如果您的 DLL 的源文件足够小,您可能可以获得 COFF 调试信息来构建(-gcoff 而不是 -g)。
因此,Windbg 可以(据称)处理 COFF 符号,而 GCC 可以生成它们。所以从那里应该很容易,对吧?我试图用一个由加载 gcc 编译的 DLL 的 Visual Studio 2008 生成的 Win32 可执行文件来做到这一点。对我来说不幸的是,使用 -gcoff 编译不起作用。 Mingw 的 gcc 不会为超过 64k 行代码的项目生成 COFF 符号。我使用的 DLL 明显大于 64K 代码行。遗憾的是,我不得不承认,我放弃并重新使用可信赖的 OutputDebugString。否则,我将能够提供更完整的说明。我并不想研究让 gcc 为更大的源文件做 COFF 符号的选项,或者编写调试扩展来解析 DWARF 或 STABS 数据到 windbg 的内部符号表的替代选项。
顺便说一下,我解决了这个问题!
可以找到进一步的建议 in this forum post at windbg.info .

关于debugging - 使用 rebase.exe 从 msys/mingw gcc 构建的 dll 中提取调试信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1593117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com