Bitcoind

調試比特幣

  • February 2, 2022

如何將 gdb 附加到 bitcoind 守護程序。我希望逐步了解這些功能。這是我嘗試過的。

gdb --args bitcoind -regtest -daemon

然而,這在守護程序啟動時存在。所以我嘗試在分叉後通過 pid 附加。

gdb -p 841
(gdb) file /usr/local/bin/bitcoind
Reading symbols from /usr/local/bin/bitcoind...done.
(gdb) b sendtoaddress
Breakpoint 1 at 0x4b4d34: file wallet/rpcwallet.cpp, line 379.    
r
starting program...    

但是,當我使用 bitcoin-cli 客戶端呼叫事務時,這不起作用。有什麼我想念的嗎。我在配置時使用了 –enable 調試。

謝謝。

正如 Nate Eldrige 所說:

嘗試 gdb /path/to/bitcoind 然後附加 841。但是,您使用的是什麼作業系統?有些不允許普通使用者將調試器附加到正在執行的程序;你必須是根。附加到正在執行的程序時不要使用 r;重新開始

使用attach(或-p)可以簡單地停止程序,讓你檢查它的狀態(例如where,print,…),設置斷點,如果你願意,可以修改它的記憶體。當您希望程序執行任何進一步的執行時,您必鬚髮出適當的命令 (n,s,c)。

如果您使用的是 MacOS,那麼 Fabian Jahr 可能會對本文件有所幫助。如果您在 MacOS 上,他建議使用 lldb 而不是 gdb。

引用自:https://bitcoin.stackexchange.com/questions/51472