2
是否有可能與gdb
運行過程中,修改一些記憶,然後從過程之後detach
?使用gdb和運行過程中其分離
如我需要修改存儲器,執行第一指令之前,我無法啓動從gdb
以外的處理。
當您從gdb
開始的進程detach
,gdb
將掛起,但從另一進程中kill gdb
使調試進程仍在運行。
我目前使用下面的腳本來啓動進程:
echo '# custom gdb function that finds the entry_point an assigns it to $entry_point_address
entry_point
b *$entry_point_address
run
set *((char *)0x100004147) = 0xEB
set *((char *)0x100004148) = 0xE2
detach # gdb hangs here
quit # quit never gets executed
' | gdb -quiet "$file"
這發生在我的兩個gdb
版本:
GNU gdb 6.3.50-20050815 (Apple version gdb-1824)
GNU gdb 6.3.50-20050815 (Apple version gdb-1822 + reverse.put.as patches v0.4)
什麼?你正在使用'6.3'?那是近十年前發佈的。 – devnull
@devnull這是Apple發佈的最新版本,其中包括OS X的相關功能。由於Apple傾向於使用'llvm + clang'而不使用'gcc',因此他們會比'gdb'更喜歡'lldb'。 – Tyilo
爲什麼你需要分離?爲什麼不讓gdb運行? –