Re: Bitcoind

かなり絞り込めた。debug.logにIRCの活動が一切出力されていないので、RecvUntilを通過できていないのだろう。目視では明らかな問題は見当たらない。ConnectSocketかRecvUntilのどちらかに問題があるはずだ。

添付のirc.cppとnet.cppで試して、debug.logを送ってほしい。

あるいは、gdbで実行してThreadIRCSeedをステップ実行することもできる。

gdb --args bitcoin [switches]
b ThreadIRCSeed
run
step

またはuでステップオーバーしてルーチンから抜ける。

mmalmi@cc.hut.fi wrote:

getinfoに関係なくエラーが発生します。ThreadIRCSeedをコメントアウトしたら 問題が解決しました。

getinfoを実行しなくても同じ現象が起きますか?

以下に挙げるCreateThreadをコメントアウトして、その後1つずつ有効に戻していき、 再び問題が発生するまで試してみてください。そうすればどのスレッドに問題がある か分かります。

net.cppの// Start threads以下: CreateThread(ThreadIRCSeed, NULL) CreateThread(ThreadSocketHandler, NULL, true) CreateThread(ThreadOpenConnections, NULL) CreateThread(ThreadMessageHandler, NULL)

init.cpp: CreateThread(ThreadRPCServer, NULL);

mmalmi@cc.hut.fi wrote:

送ります。クラッシュ時のエラーメッセージを伝え忘れていました:

terminate called after throwing an instance of ‘std::bad_alloc’ what(): std::bad_alloc

debug.logを送ってもらえますか?

mmalmi@cc.hut.fi wrote:

dddデバッガーで自分のbitcoindビルドのデバッグを試みましたが、まだうまく いっていません。常にシステムのメモリをすべて使い切って、最終的にクラッシュ します。問題が自分のビルドに起因するものか確認したいので、最新の64ビット版 bitcoindのビルドをもう一度送ってもらえますか?

出典:COPA対ライト裁判の証言の一環として、2024年2月にマルッティ・マルミによりGitHubで公開。完全な書簡アーカイブはmmalmi.github.io/satoshi/で閲覧可能。