关于源码及调式 glibc 我以前想的是编译带 symbol 的 libc 但是失败了,太麻烦了,所以我在网上找到了一种更方便的方法
1.首先 去注释 源码源,就是那些 # deb-src 开头的
1  | sudo sed -i "s/# deb-src/deb-src/g" /etc/apt/sources.list  | 
如果 /etc/apt/sources.list 里面没有的话自己百度找到符合的源添加
2. update
1  | sudo apt update  | 
3.安装带 debug symbol 的 libc
1  | sudo apt install libc6-dev  | 
4.获取 libc6-dev 的源码
1  | apt source libc6-dev  | 
完事后你会发现当前文件夹下面会有一个 glibc-xxx 的文件夹,这就是源码
就比如我们要在 gdb 中 debug 时能查看 malloc 的源码我们可以这样做
我的是 ubuntu16 glibc-2.23
1  | root@82374599b04f:~# cd glibc-2.23  | 
gdb操作:
1  | (gdb) b main  | 
然后运行到 malloc 那一行的时候就一直 si
就能看到有源码了,先进入的是 dl

然后是 malloc.c

5.总结
malloc 只是个演示
debug 别的函数也是一样
1.先找到源文件的位置
2.然后在 gdb 里 directory
3.步入那个函数就OK