mingw gcc编译和gdb调试

发布于 2024-10-15 16:26:23 字数 163 浏览 5 评论 0原文

我想gdb在mingw下的Windows上如何工作? 当用mingw C编译成.exe时,它会创建PE文件,对吧(这样Windows就可以运行它)。

但随后您想使用 gdb 调试 .exe。这个gdb知道调试PE文件吗?如何?它是否从PE文件中读取调试信息?是 Dwarf 调试信息还是其他信息?

I think how gdb works on Windows under mingw?
When compile with mingw C into .exe, it creates PE file, right (so Windows can run it).

But then you want debug the .exe with gdb. This gdb knows to debug PE file? How? Does it read debug info from PE file? Is it Dwarf debug info or something else?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

睡美人的小仙女 2024-10-22 16:26:23

正如你所说,为了在 Windows 上本地运行,mingw 显然会生成 PE 可执行文件。

运行 objdump -s your.exe 来查看 mingw 生成的 PE 文件中嵌入的部分。 (.debug_*)。如果您在 Linux 上构建相同的可执行文件并执行相同的操作,您将看到节名称匹配。在 objdump 中添加 -s 参数会显示该节的内容,并且您将看到格式看起来相同,因此 mingw 必须使用 DWARF。

As you say, in order to run natively on windows mingw obviously produces PE executables.

Run objdump -s your.exe to see the sections embedded in the PE file mingw produces. ( .debug_*). If you build the same executable on, say, Linux and do the same thing you'll see the section names match. Adding in the -s argument to objdump shows the section contents and you'll see the format looks the same, so mingw must be using DWARF.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文