如何以允许使用gdb遍历源代码的格式获取eglibc的源代码?
我尝试过使用apt-get source libc6-dev,这可以获得源代码,但我认为,由于未应用预处理器指令,gdb的行号与我下载的源代码不匹配。这使得它在尝试遍历源代码和查看libc中的函数是如何工作时就不那么有用了。
发布于 2012-04-27 01:07:30
如果您真的想了解源代码,我建议您构建一个libc,不需要优化,也不需要剥离二进制文件。
幸运的是,这应该很容易--因为您已经获得了源代码,所以可以从它构建包。您需要确保DEB_BUILD_OPTIONS环境变量包含noopt以获取-O0二进制文件,并确保nostrip保留调试符号,然后使用debuild进行正常构建:
sudo apt-get build-dep libc6
DEB_BUILD_OPTIONS="noopt nostrip" debuild -us -uc将生成使用-O0构建的包,并且不需要去掉调试符号;然后可以使用dpkg安装它们,gdb将获取调试符号。另外,gdb还将知道在哪里查找源文件,因此您将获得源列表。
由于我们没有更改包的版本,下次运行升级apt时,将用存档版本替换这些本地安装的包。
发布于 2012-04-26 22:16:29
您可以尝试使用apt-get源-d libc6-dev,这将给出源和diff格式的deb格式。然后您可以解压缩它,它应该给出tar.gz中的源代码,解压缩它,因为well.It应该存储在运行apt命令的目录中。
https://askubuntu.com/questions/123324
复制相似问题