以下は JE2BWM ほかが作成した翻訳 です。 原文は University of California より GFDL で配付されており、 この翻訳も GFDL に従います。
原文: Application debugging   (翻訳対象の更新日付は 4:46 PM UTC, April 17 2006 です)。

アプリケーションのデバッグ

boinc.gif
(英語のみ)

アプリケーションをデバッグするときのご参考

スタンドアローン・モード

アプリケーションをビルドして BOINC ライブラリとリンクしたら、それを 「スタンドアローン・モード」 (つまり、BOINC コア・クライアントなしで) で走らせることができます。 そのためには、 入力ファイルをすべて[アプリケーションと] 同じディレクトリに置きます (その入力ファイルには、物理名ではなく、適切な論理名のほうをつけておきます)。 すると走ったアプリケーションは出力ファイルを (これも論理名がファイル名としてついたもの)作り出すはずです。 このプログラムをデバッガのもとで走らせることも可能です。

スタンドアローン・モードでアプリケーションを走らせるときは、 BOINC API はスタンドアローン・モードであることに気づいて、 上手く振る舞うようにできています。 [それでも、] いくつか気をつけるべきことがあります。

匿名プラットフォーム機構を使う

アプリケーションがスタンドアローン・モードで動いたら、 次に BOINC コア・クライアントから起動したくなります。 これができれば、コア・クライアントとの様々なやり取りをテストすることになります。

コア・クライアントから起動するには、テスト・プロジェクトを作成し、 アプリケーションの版といくつかの仕事をそのプロジェクトに追加して下さい。 そして、コア・クライアントを起動すれば、必要なものをすべて ダウンロードしてアプリケーションを起動してくれます。 ひょっとしたらアプリケーションはクラッシュするかもしれませんが。

ここまでくれば、そのアプリケーションを使っていろいろ実験をしたくなるでしょう。 しかし、 アプリケーションの更新のたびに新しいアプリケーションの版を作るのはとても面倒なはずです。 むしろ、 BOINC の 匿名プラットフォーム 機構 を使うほうがよほど簡単です。 そのためには、以下のようにします。

Unix では、すでに走っているプロセスをデバッガにかけることができます。 コマンドを使ってアプリケーションのプロセス ID (PID) を見つけ、 以下のようにして そのプロセスをデバッガにかけます。

gdb exec_filename PID

スタックトレースを入手し解読する

ご自身のコンピュータであなたのアプリケーションが動きはじめたら、 外部のコンピュータ(最初はアルファテスタ達)によってテストする準備ができたことになります。 プログラムはいくつかのコンピュータでは止まってしまうことがあるでしょう。 たとえば、アルファテスターのソフトウエアやハードウェアはあなたのものとは違うという原因で。 リザルトの中の stderr_txt フィールドから、いくらかの情報を返してもらうことができるでしょう。 もし、アプリケーションが boinc_init_diagnostics() を BOINC_DIAG_DUMPCALLSTACKENABLED フラグをセットして 呼んだ後であって、かつ、シンボルを含ませていたならば、 うまくいけば、シンボリックな表示のされたスタックトレースを手に入れることができるでしょう。

Windows の stack trace を解読するには Windows でのアプリケーション・デバッグ を見て下さい。

さもなくば、少なくとも(16進数の)数値表現されたスタックトレースを手に入れるはずです。 アプリケーションの unstripped 版をシンボリック・デバッガで動かして、 その16進数表現の数値を入力すれば、スタックトレースを解読できます。 右をご覧ください。 http://developer.apple.com/technotes/tn2004/tn2123.html#SECNOSYMBOLS


BOINCの訳のメインページに戻る | (原文のメインページに戻る)
 

最終更新時刻 00:46:10, 2006年08月12日(JST)
Copyright © 2012 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 © 2012 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.