我下載了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