ubuntu安装glibc

VSCode在ubuntu下调试无法打开libc-start.c raise.c等,一般是由于系统glibc未安装或者版本不对。

1. 安装/升级glibc

方法一(原地法):

apt-get install glibc-source
cd /usr/src/glibc/
sudo tar -xvf glibc-[VERSION].tar.xz

方法二(共存法):
apt源不支持更高版本的glibc时也可采用此方法,如ubuntu18.04不支持glibc-2.29。
查看glibc版本:

ldd --version

安装

wget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.29.tar.gz
tar -zxf glibc-2.29.tar.gz
cd glibc-2.29
mkdir build && cd build
apt-get install gawk bison -y
../configure --prefix=/usr/local/glibc-2.29
make -j4
make install

注:

  1. configure最好不要加--with-headers参数,否则会遇到一些问题,因为这个参数指定make在该目录下查找库,参考linux下安装glibc-2.14——zhj失落之地CSDN
  2. install后不可直接删除旧版软链接,如libm.so.6等,否则会导致系统崩溃。应备份后创建同名软连接指向新版:
    mv /lib/x86_64-linux-gnu/libm.so.6 /lib/x86_64-linux-gnu/libm.so.6.bak
    ln -s /usr/local/glibc-2.29/lib/libm.so.6 /lib/x86_64-linux-gnu/libm.so.6
    
    • 这里mv命令我是直接复制我执行的命令,说明mv是可以的,但鉴于评论区有人反馈出问题,所以稳妥考虑,大家可以改用cp命令

2. launch.json中添加路径映射

"sourceFileMap": {
      "/build/glibc-S7xCS9": "/usr/src/glibc"
}
  • 注意修改 S&xCS9 为报错提示中出现的glibc文件名

3. 调试

F5开启调试

补:升级glibc经验之谈