前言
有时候基于好奇或遇到了BUG,想看看glibc中某些功能怎么具体实现的。除了调试汇编,还可以编译glibc源码然后调试。在上节《Modern C++ std::mutex底层原理-CSDN博客》中,我们用汇编调试了glibc,本节我们编译其源码来直接调试。
编译流程
$ ldd --version
ldd (GNU libc) 2.17
$ wget https://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
$ tar -xvzf *.gz
$ mkdir glibc-2.17-build
$ cd glibc-2.17-build
$ export CFLAGS="-g3 -O1" for macro expansion, glibc requires optimization.
$ ../glibc-2.17/configure --prefix=/usr/local/glibc-2.17 --disable-profile --disable-werror
$ make
$ sudo make install
先确定glibc版本,然后下载对应的源码,解压,编译&安装到/usr/local/glibc-2.17
为了不破坏我机器的环境,我没设置环境变量,而是利用编译选项让它从/usr/local/glibc-2.17下找lib:

订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



