サーバコンポーネントをデバッグする |
|
BOINC サーバソフトウエアをデバッグする技術の福袋
ソースコードの sched/main.C の中に以下の行を追加します。
#define DUMP_CORE_ON_SEGV 1そしてコンパイルし直してください。
gdb cgi (set a breakpoint) r < scheduler_request_X.xml
update host set rpc_seqno=0, rpc_time=0 where hostid=N以上の手法は、プロジェクトがなぜ、'no work available' というメッセージを出すのか理解するのに有用です。
同じことをする別の方法のひとつは、 handle_request.C を変更して、 sreply.write(fout) の直前に debug_sched(sreq, sreply, "../debug_sched") の呼出しを挿入することです。 こうしてリコンパイルした後で、プロジェクトのルート・ディレクトリに 'debug_sched' という名前のファイルを、touch コマンドで作ります。 こうすると、それ以降のスケジューラへの要求と応答が、 cgi-bin/ ディレクトリの中に要求ごとの小さなファイルとして書き出されます。 これらのファイルの名前は、 sched_request_H_R の形をしており、 その中で、 H は hostid 、 R は RPC順序番号の値です。 この饒舌なデバッグ出力を停めるには、単純に 'debug_sched' ファイルを削除してください。
最終更新時刻 00:51:00, 2006年08月12日(JST)
Copyright © 2010 University of California.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software Foundation.
Copyright © 2010 Komori Hitoshi(je2bwm at jarl.com).
Japanese translation from English web pages on BOINC.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software Foundation.