[問題] 如何利用GDB將shared library加入程式
最近在測試如何利用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
09/24 10:57, 1F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章