Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
改变glibc,但什么也没发生_C_Linux_Gcc_Glibc - Fatal编程技术网

改变glibc,但什么也没发生

改变glibc,但什么也没发生,c,linux,gcc,glibc,C,Linux,Gcc,Glibc,我想修改glibc。所以我下载了它的一个版本,并对代码做了一些修改。例如,我对memset进行了更改。但是,如果使用LD_预加载编译生成的.so文件,与不使用任何LD_预加载时相比,我看不出有什么区别。memset的行为与之类似。为什么会这样?是不是编译器内联了memset而没有使用共享对象中的任何东西?我不明白。我甚至对printf进行了更改,但仍然没有任何更改。为什么会这样。我如何修改glibc以进行测试,以便看到更改 此外,当我试图更改pthread_create,当然是LD_预加载lib

我想修改glibc。所以我下载了它的一个版本,并对代码做了一些修改。例如,我对memset进行了更改。但是,如果使用LD_预加载编译生成的.so文件,与不使用任何LD_预加载时相比,我看不出有什么区别。memset的行为与之类似。为什么会这样?是不是编译器内联了memset而没有使用共享对象中的任何东西?我不明白。我甚至对printf进行了更改,但仍然没有任何更改。为什么会这样。我如何修改glibc以进行测试,以便看到更改


此外,当我试图更改pthread_create,当然是LD_预加载libpthread.so时,通过在该函数的开头引入printf pthread_create,我只得到了一个分段错误。这是怎么回事?另外,如果我检查libc.so中的差异,在对glibc源代码进行更改之后,我在生成的版本中看不到任何差异。这里发生了什么。这简直快把我逼疯了

GCC提供了的内置版本,包括memset和printf。它与glibc实现这些功能无关


尝试传递-fno内置编译器选项以禁止此行为。

GCC提供的内置版本,包括memset和printf。它与glibc实现这些功能无关


尝试传递-fno内置编译器选项以禁止这种行为。

我最终通过静态链接glibc成功了!呸!我终于通过静态链接glibc成功了!呸!