最近有个需求,需要源码调试glibc。由于系统的glibc没有调试符号,所以也算费了一番周折。不过ubuntu还是比较人性化的。
首先在ubuntu上安装带调试符号的libc
sudo apt-get install libc-dbg |
---|
在32位下命令如下:
sudo apt-get install libc-dbg:i386 |
---|
其次,需要通过apt来下载源码。Ubuntu的源码是基于GNU libc做了修改,随意最好通过Ubuntu的源来下载。
sudo apt-get install source libc-dev |
---|
执行这条命令可能会报错。因为在替换国内源的时候,没有加上deb-src的源。在source.list
中查看是否有deb-src,如果没有,添加这个源即可。
命令执行完成后会在当前目录多一个eglibc-版本
的文件夹,比如我的机器是glibc-2.19
,则下载的目录为eglibc-2.19
在gdb中需要设置源码搜索路径
directory /home/user/eglibc-2.19/nptl |
---|
再跟进libc中就会有源码了。