debug.logを添付します。
かなり絞り込めました。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/で閲覧可能。