Jac*_*cek 5 c windows debugging gcc windbg
我通过GCC(v7.1.0)(下面的命令行)编译了此类代码。
int func()
{
return 0x1234;
}
int main()
{
func();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
gcc。\ 001_simpleMain.c -O0 -m64 -g
编译后,我运行WinDbg(10.0),打开可执行文件(Ctrl + E),正在加载程序。在启动过程中命中断点就可以了。之后,我想打开源代码(Ctrl + O)并尝试将断点放在func方法内。
WinDlg告诉我:
***错误:模块加载已完成,但无法为G:\ Examples \ Gcc \ a.exe加载符号
为什么不起作用?我应该更改编译参数吗?我的CPU是AMD64
由于您使用的是带有 WinDbg 的 Windows,因此您需要专有的PDB 文件,其中包含来自 Microsoft 的调试器工具的调试信息。
\n\ngdb
例如,GCC 将生成可供调试器(在 Linux 中众所周知)使用的调试信息。
\n\n\n以操作系统\xe2\x80\x99s 本机格式(stabs、COFF、XCOFF 或 DWARF)生成调试信息。GDB 可以使用此调试信息。
\n
如果您已经使用 MinGW 或 Cygwin,则可以gdb
从那里使用,因为它在 MinGW/Cygwin 环境中可用。如果没有,有几种gdb
适用于 Windows 的实现可用。
归档时间: |
|
查看次数: |
1879 次 |
最近记录: |