Hatena::ブログ(Diary)

要するに雑記。 このページをアンテナに追加 RSSフィード

2009-11-27

[] バグ報告のしかた(伺かの場合)

id:ukiya:20091121 の続きです。

前回書いたのは、一般的なソフトウェアのバグ報告の仕方でした。


伺かでも、その原則は同じなのですが、伺かの場合だけの特殊事情があります。

それは、伺かは、何人もの作者がいる、いくつもの部品で構成されている、ということ。

だから、何か起きた時、「報告するったって、誰に?」というのが問題になります。


そこで、伺かの場合の、簡単な切り分け方法を書いてみたいと思います。

「切り分け」とは、システム屋さんの用語で、「問題がどの部分にあるか、どの部分は関係ないかをつきとめること」です。


ゴーストのトークに誤字脱字がある。変な記号を喋る。\0と\1が入れ替わる。表情がおかしい。

これは、十中八九、ゴースト側に問題があります。

ゴースト作者に問い合わせをしてみましょう。


その際も、前回の原則を心がけてください。

つまり、最低限、「どのトークで起きたか」を「正確に」伝えると良いです。


SSPなら、CTRL+Lでスクリプトログウィンドウを出せるので、そこから、問題の起きたトークをそのまま、作者に伝えることができます。


特定ゴーストの更新ができない。ゴーストの更新でエラーが出る。

これも、ゴースト側か、配布サイトの問題であることが多いです。

エラーが出たならその内容を、作者に伝えてみましょう。


特定ゴーストの根本的な動作がおかしい。

例えばお座りする筈のゴーストが座らない、音楽が鳴る筈のゴーストで鳴らない、何も喋らない、など。


これは、ゴースト側、システム側、どちらの問題かの判断は難しいです。

が、特定のゴーストで起きる問題なのであれば、まずはゴースト作者に問い合わせてみるのが良いと思います。

もしゴースト作者で手に負えない問題であれば、きっと、ゴースト作者がシステム作者に問い合わせをするでしょう。その際、ゴースト作者は、大抵の場合あなたよりも詳しく、システム作者と相談をすることができるからです。


エラーダイアログが出る。あるいは、SSPが固まったり、落ちたりする。

一番厄介な問題です。

エラーダイアログが出るのは、里々ゴーストで、ゴースト側に問題があるケースも多いのですが、SAORI絡みだったりして、システムに詳しくない人にとっては切り分けは難しいです。


掲示板や、うかちゃ などのコミュニティで同じ現象が起きている人が居ないか探すか、或いは ばぐとら研ToDo::SSP などで報告すると良いと思います。

報告をする際には、なるべく前回の原則を心がけましょう。お互いの時間の節約になります。

[] SSPでの情報の取り方

さて。

あなたが、ゴーストではなくシステムの問題(落ちる、固まるなど)に遭遇して、報告しようとしたとします。

その場合、id:ukiya:20091121 の原則に沿って報告しようとすると、特に「発生環境」の部分で詰まるのではないでしょうか。


幸いなことに、SSPには、「発生環境」を取得する機能があります。以下の2種類のファイルのいずれも、「発生環境」について、充分な情報を開発者に伝えてくれます。


STACKTRC.TXT

SSPが落ちた場合、SSP.EXEがあるのと同じディレクトリに、STACKTRC.TXT というファイルが出来ていることがあります。

中身は英語とシステム語の羅列で、意味が分からない、怖い、と思うかもしれませんが、まずは4行目あたりを見て下さい。

Time: 2008/3/1 16:19:10.059

こんな形で、時刻が書いてありませんか。書いてあれば、落ちた日時と比べてみてください。大体近い日時ならば、それは落ちた際にできたSTACKTRC.TXTであり、重要な手掛かりになります。是非報告に含めてください。

時刻が大きくずれている(日が違うなど)場合、それは、過去にSSPが落ちた際のファイルです。残念ながら、今回の報告には使えないと思います。

なお、STACKTRC.TXTには、SYSTEMINFO.TXTに含まれる情報は入っていますので、両方を報告に含める必要は普通ありません。


もしあなたが、もう少し切り分けをする気があるのなら、以下のあたりも見てみてください。


  • 行の先頭に「==>」という文字がある、最初の行を探してください。
    • それは、どのプログラム(プロセス)で問題が発生したか、を示しています。
    • 大抵の場合、その行には「ssp.exe」と書いてあるはずです。もし別のプログラムの名前が書いてあった場合、そのプログラムに関する情報も一緒に報告できれば、大きな手掛かりになると思います。
  • 行の先頭に「==>」という文字がある、二番目の行を探してください。
    • それは、どの部品(DLL)で問題が発生したか、を示しています。
    • そこにSHIORIの名前(satori.dll、yaya.dll、kawari.dll)が書かれていた場合、問題がSHIORIにある可能性が高くなります(絶対ではありません)。最初にそのSHIORIの作者に相談してみるのも良い方法かもしれません*1
    • 同様にして、そこにSAORIの名前が書かれていた場合、問題がSAORIにある可能性が高くなります。

SYSTEMINFO.TXT

STACKTRC.TXTが使えない場合でも、「発生環境」については取得する方法があります。どのゴーストでも良いのでSSPを起動して、右クリックメニューから[情報]-[システム情報を書出]を選んでください。

すると、SSP.EXEのあるディレクトリに、SYSTEMINFO.TXT というファイルができます。それを一緒に報告すると、「発生環境」について、まず必要な情報は伝えられることになります。


どっちの場合でも

どっちのファイルも、SSPはわざとあなたの機密情報をそこに書き込んだりはしませんが、以下の情報は含まれています。

  • Windowsのログインユーザ名に、本名を使っている場合は、その名前が書かれている可能性が高いです。
  • コンピュータ名が書かれています。
  • そのとき起動していた他のソフトの名前が書かれています。

それらを知られたくない場合は、報告するためにWebに上げるまえにざっと中身を見て、どうしても隠したい情報については伏せ字などにするか、或いは、メール等の手段で公開せずに情報を送りましょう。伏せ字などにした場合は、その旨を開発者に伝えておいてください。


また、ファイルから読み取れるのは、多くの場合「発生環境」だけで、「発生事象」「操作手順」については分からないことが多いです。それらの情報について一緒に伝えるのを忘れないでください。

*1:satori.dllとyaya.dllであれば、私でも少しはお役に立てるかもしれません。うかちゃあたりで捕まえてみてください。