1
我有一個用於查找內存泄漏的.so文件。我在要執行我的目標二進制文件的會話中設置LD_PRELOAD env變量。 export LD_PRELOAD=./memleakfinder.so
但是一旦設置了這個環境變量,即使是一個簡單的linux命令,如ls
或ps
也會導致Segmentation fault (core dumped)
。爲什麼會發生這種情況?我在該.so文件中過載了malloc()
,calloc()
,realloc()
,free()
,new
,new[]
等版本。 CentOS6的自動錯誤報告工具說: source:coreutils Problem:process /bin/ls was killed by signal 11(SIGSEGV)
。顯然庫注入在這裏引起了問題。我怎樣才能避免它?LD_PRELOAD引起Linux命令的分段錯誤
您確定**正確**實現了這些功能嗎? –
使用gdb檢查覈心轉儲並在崩潰時查看堆棧跟蹤 – harmic
在整個系統上運行之前,先製作測試程序,調用您的函數並對其進行測試。 –