我下载了glibc源代码,修改了标准库的某些部分,然后使用LD_PRELOAD
与我的程序一起使用修改过的标准库(以.so文件的形式)。但是,当我将.so
文件复制到另一台计算机并尝试使用LD_PRELOAD
在那里运行相同的程序时,出现了分段错误。通过glibc库复制
请注意,两台计算机都有x86-64处理器。而且,这两台电脑都安装了gcc 4.4。尽管未运行的计算机也安装了除gcc 4.4之外的gcc 4.1.2。然而,其中一个运行的是Ubuntu 10.04(我编译的地方),另一个运行的是CentOS 5.这是导致分段故障的原因吗?我怎么解决这个问题?请注意,我在CentOS 5的计算机上没有管理权限。
请注意,使用'LD_PRELOAD',您不必修改标准库,就可以创建一个新库来替换标准库中的一些函数。这可能更容易。 –
你可以在gdb中运行它来获得回溯?在gdb提示符下使用'set environment LD_PRELOAD = blah'。 – Tobu