[問題] 如何利用GDB將shared library加入程式

看板LinuxDev作者 (亮亮)時間15年前 (2010/09/24 01:33), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
最近在測試如何利用GDB將shared library加入到我的程式中 例如像我原本在compile的時候沒有將libm.so檔link進來 所以希望在GDB裡面可以利用GDB指令將此shared library加入 並呼叫它的函式 上網看有關GDB的文件和google了很久 找到了可能有關的兩個指令"add-symbol-file"和"sharedlibrary" 但是得到的結果卻是 1. add-symbol-file: 例: add-symbol-file /lib/libm.so.6 0x004003c0 可以呼叫libm裡的函式,但是會segmentation fault 且執行"info sharedlibrary"指令,發現libm.so.6沒有被link進來 2. sharedlibrary: 例: sharedlibrary *sqrt* (這是參考 http://0rz.com/qEy98A 這個網頁所下的指令) 或 sharedlibrary libm 或 sharedlibrary lm  已將path 指向/lib 但GDB都是回報"No loaded shared libraries match the pattern 'xxx'" xxx = *sqrt* 或 libm 或 lm 這個問題困擾了我很久,想請問大家是否能提供解法給小弟參考, 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.172.132

09/24 10:57, , 1F
gdb不會 我只會用LD_PRELOAD
09/24 10:57, 1F
文章代碼(AID): #1CcuziRP (LinuxDev)
文章代碼(AID): #1CcuziRP (LinuxDev)