我目前正在使用gdb调试来自共享库libc6的apigetaddrinfo()
从python模块调用:socket.getaddrinfo()
我已经设法在getaddrinfo.c设置了一个断点,并且希望在单个步骤中导航执行。
源文件:
ldd --version
告诉我我有glibc 2.19,我已经从这里下载了源代码
http://ftp.gnu.org/gnu/libc/
但是在使用gdb进行单步调试期间,行号看起来并不匹配。
有没有更干净的方法来下载libc6的源代码
PS:我是gdb调试新手,请指出任何需要的信息。
1条答案
按热度按时间wljmcqd81#
Ubuntu 22.04最小可运行示例
另请参阅:https://askubuntu.com/questions/487222/how-to-install-debug-symbols-for-installed-packages/1434174#1434174
在glibc的情况下,调试符号似乎已经预装,否则我们需要使用以下命令来获取它们:
然后获取源代码:
生成目录:
glibc-2.35
.然后,我们用C制作一个hello world来测试:
main.c
并使用以下命令将GDB编译到其中:
然后将其测试为:
“我们进去了”。
一些其他版本的Ubuntu在一个绝对位置有源代码,如:
在这种情况下,您将需要: