我想在glibc中调试一些东西,所以我想使用glibc的调试版来构建程序。 如果我只是使用" gcc -o test test.c"建立程序,
apt-get install libc6-dbg
apt-get source libc6-dev
当我调试程序时,一些val被告知它已经过优化。 EIP总是跳回来。
如何调试glibc的调试版本。
答案 0 :(得分:3)
警告:我使用fedora,但它有类似的机制。
调试包会下载一个附加文件,该文件包含使用-g
glibc
进行编译时可获得的调试信息。
但是,此软件包与标准构建匹配,该构建是使用优化构建的(例如-O2
)。
这是导致您所看到的行为的优化。因此,gdb“覆盖”将是参差不齐的。
您想要的是使用glibc
和-gdwarf-2
构建的-O0
版本。 AFAIK,您必须通过自己构建glibc
来实现这一目标。
您可能必须运行configure
脚本并为构建选择-g
和-O
选项。然后,运行make
。具体细节应该在源文档[或在线]某处。
然后,您必须[强行]将您的程序与源自内置版本链接。