我有一个崩溃的编译 .exe 文件(使用 gfortran 和 -g 选项编译)。我可以使用WinDBG -I命令将 WinDBG 程序附加到它。
有趣的是它会产生堆栈溢出:
(38f0.2830): Stack overflow - code c00000fd (!!! second chance !!!)
但是,输出显示我的程序中没有调试信息。它尝试搜索 .dbg 或 .pdb 文件,但它们不存在。我假设调试信息包含在可执行文件中(来自 unix 背景)。
我通过 gdb 启动程序绕过了这个问题。这样gdb会报错,你可以发出回溯命令。
它并不完美,所以我愿意寻求更好的解决方案,但这目前有效。
调试格式是特定于编译器的,因此您需要使用能够理解编译器生成的格式的调试器。至于 gfortran,我假设您的意思是 GNU fortran,这将是GNU gdb调试器。