如何使用glibc的调试版本来构建程序?

时间:2016-02-18 20:27:20

标签: c linux gcc glibc

我想在glibc中调试一些东西,所以我想使用glibc的调试版来构建程序。 如果我只是使用" gcc -o test test.c"建立程序,

  

apt-get install libc6-dbg

     

apt-get source libc6-dev

当我调试程序时,一些val被告知它已经过优化。 EIP总是跳回来。

如何调试glibc的调试版本。

1 个答案:

答案 0 :(得分:3)

警告:我使用fedora,但它有类似的机制。

调试包会下载一个附加文件,该文件包含使用-g glibc进行编译时可获得的调试信息。

但是,此软件包与标准构建匹配,该构建是使用优化构建的(例如-O2)。

这是导致您所看到的行为的优化。因此,gdb“覆盖”将是参差不齐的。

您想要的是使用glibc-gdwarf-2构建的-O0版本。 AFAIK,您必须通过自己构建glibc来实现这一目标。

您可能必须运行configure脚本并为构建选择-g-O选项。然后,运行make。具体细节应该在源文档[或在线]某处。

然后,您必须[强行]将您的程序与源自内置版本链接。