Translations:QA/BugReport/55/ja

From The Document Foundation Wiki
Jump to navigation Jump to search

macOS でデバッグ情報を取得する方法

デバッグ情報はなぜアプリケーションがクラッシュしたりフリーズしたりしたかを解析するためにとても有用です。macOS では、追加のソフトウェアをインストールすることなく、標準のデバッグ情報をとても簡単に取得することができます(この情報は単純なスタックトレースで、シンボル情報は欠落していますが、にもかかわらずとても有用です)。 厳密なやり方は macOS のバージョンおよび設定で変わりますが、一般的には次のようにしてデバッグ情報を得ることができます。

  • アプリケーションがクラッシュしたとき、macOS は「LibreOffice が予期しない理由で終了しました。」というダイアログを表示し、Apple にレポートを送るかどうかを聞いてきます。「レポート...」 と書かれたボタンを推してください。「LibreOffice の問題レポート」というもっと大きなダイアログが開きます。「問題の詳細およびシステム構成」の下に、技術的な詳細からなる長いテキストが記入されたエディットフィールドがあります。この長いテキストをクリックし、⌘ Cmd+a を押してテキストを全選択し、⌘ Cmd+cでコピーして、何らかのテキストエディター (Apple の TextEdit など) に移動して ⌘ Cmd+v を押してテキストを貼ります。それからこのテキストを新規のファイルとして保存します。プレインテキスト (.txt) が最もよい形式でしょう。このファイルをバグレポートに添付してください (Apple にレポートを送る必要は ありません。「問題レポート」ウィンドウでは「送信しない」 ボタンを押しましょう)。
  • アプリケーションがハングしたりフリーズ (固まった) りしたとき、⌘ Cmd+Alt+Esc を押すことで強制的に終了できます。macOS は「アプリケーションの強制終了」というタイトルのダイアログウィンドウを表示し、どのアプリケーションを終了したいか聞いてきます。リスト中のどのアプリケーションがハングまたはフリーズしたかを知るには、「応答なし」と出ているものがヒントです。それを選択して「強制終了」ボタンを押してください。システム設定にもよりますが、Apple にレポートを送るかどうか聞かれるでしょう。送る、と答えたら、先ほどの「問題レポート」ウィンドウと同じ物が出ますので、同様にデバッグ情報のテキストをコピーしてセーブすることができます。

注意:システム設定あるいはユーザー設定によっては、Apple へのレポートを行うかを聞かれたり聞かれなかったりします。もしかしたらこれらのダイアログは admin ユーザーでログインしないと利用できないかもしれません。

Linux でバックトレースを得る方法

バックトレースはアプリケーションがクラッシュしたりフリーズしたりした原因を解析するのに非常に有用な情報です。以下の手順で取得できます:

  1. 存在するなら、libreoffice*-debuginfo パッケージをインストールしてください (Debian、Ubuntu およびその派生系では、パッケージ名は libreoffice-dbg です)。もしこのパッケージがなければバックトレースは少し有用でなくなりますが、それでもまだなにかの情報を提供してくれる可能性があります。
  2. 端末 / シェルを起動します (いくつかのディストリビューションでは Ctrl+Alt+T を押せばよいです)。
  3. soffice --backtrace を起動します。
  4. クラッシュするバグを再現してみます。もしハングアップする場合は - アプリケーションをハングさせておいて、他のコンソールから pkill -15 soffice.bin と叩くことで強制的にクラッシュさせることができます。
  5. 得られた gdbtrace.log ファイルをバグレポートに添付します。

strace ログを取得する方法 (Linux)

strace はあるプロセスが発行したシステムコールのトレースです。ファイル I/O に関係したような不具合があった場合、OS レベルで何が起きているかを確実に知る方法となります。また、プログラムが何を実行しようとしてハングしたかを見つける手軽な方法ですし、LibreOffice が実行されているシステムの情報を得ることもできます。

  1. 端末を起動します。
  2. soffice --strace を実行します。
  3. 不具合を再現させます。
  4. ログを圧縮します: bzip2 strace.log
  5. strace.log.bz2 ファイルを、バグレポートに添付します。

valgrind ログを取得する方法 (Linux)

valgrind ログは他の方法では実に発見が難しい、隠れたメモリ破壊のエラーを追いかける非常に有用なものです。CPU をエミュレートすることによって情報を集めるので、ちょっとした問題としてはコードの実行が80倍ほど遅くなることで、ちょっと遅すぎると感じることでしょう。良い点としては他の方法では見つけ出せない不具合を発見できることで、ピンポイントで不具合箇所を発見できるので開発者が修正するのが容易であることです。遅さを我慢してくれることは大歓迎です。Valgrind はまた、しばしば正の誤検知 (訳注:誤っていない部分を誤りと判定すること) もします。

  1. libreoffice*-debuginfo パッケージをインストールします。(お使いの Linux ディストリビューションで提供されているなら)
  2. valgrind パッケージをインストールします。
  3. 端末を起動します。
  4. soffice --valgrind >& /tmp/valgrind.log
  5. 我慢してください ... 80倍というのは大層な遅さです ... 不具合を再現します。
  6. /tmp/valgrind.log をバグレポートに添付します。