0x00 背景

最近有个需求,需要源码调试glibc。由于系统的glibc没有调试符号,所以也算费了一番周折。不过ubuntu还是比较人性化的。

0x01 方法

首先在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

0x02 使用

在gdb中需要设置源码搜索路径

directory /home/user/eglibc-2.19/nptl

再跟进libc中就会有源码了。