如何在automake c项目中获得调试符号?

时间:2013-10-02 08:30:12

标签: c debugging gdb

我尝试在Windows中使用Cygwin对自动化项目进行去除。 我运行了以下内容:

./configure CFLAGS="-g -o0"  
make
之后,我加载了

gdb file src/slim.exe

它说

no debugging symbols found

文件说:

 file src/slim.exe
 src/slim.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS  Windows

当我查看“./configure -help”时,它会在默认情况下显示--enable-debug no。

我该如何解决?

3 个答案:

答案 0 :(得分:1)

您需要做的是在obj目录中搜索* .sym(符号文件)

然后

gdb 

gdb>attach <process -id>

gdb> symbol-file <path of symbol file>

答案 1 :(得分:0)

使用Arch Linux中的makepkg进行构建时遇到了类似的问题,事实证明您可以从makepkg.conf配置中停用strip,只需添加!strip属性中的OPTION选项之前,例如:

  

OPTIONS =(!strip docs!libtool!staticlibs emptydirs zipman purge!upx!debug)

编辑:我意识到这可能无法解决OP问题,但我让她搜索类似的东西,因此认为这些信息可能对搜索相同关键字的其他人有用。

答案 2 :(得分:0)

我也遇到了这个问题,并找到了此条目。我终于弄清楚了,想在这里为其他人添加信息,作为可能的原因:

使用libtool不会给您提供可以调试的exe文件。您改为使用:

libtool --mode=execute gdb --args filename

当我在FreeBSD环境中查看时发现了这一点,并最终发现我的程序实际上是一个shell脚本。

对于cygwin,您会得到一个在问题中描述的exe,无法判断问题出在哪里。例如,file命令与上面的命令相同。