このページは Firefox OS でクラッシュレポートを扱う方法を詳解します、それにはクラッシュレポートの取得や、強制クラッシュが含まれます。
記: たいていのデスクトップ版 Firefox の貢献者は about:crashes を使うのに慣れています (詳細はCrash reporting を読んで下さい)、しかしこれは Firefox OS でサポートされていません。
その他のものを試みる前に
下記の手順は、すでにこれら3ステップに従っていると仮定しています:
- 端末のリモートデバッグが有効で、ADB がインストールされているのを確認します。これはコンピュータと端末との通信を可能にします。
- 端末とコンピュータをUSB経由で接続します。
- 必要なポートフォワードを扱う ADB Helper アドオン をデスクトップ版Firefox にインストールします。
BusyBoxをインストールする
BusyBoxユーティリティという、Firefox OSのテストやデバッグに役立つ ADB コマンドを追加するものをインストールするのも推奨されます。
インストールするには、端末がスリープでないのを確認してから:
- BusyBoxをダウンロードします。
- tarballをそれなりの場所に展開します。
- 出てきた busybox-b2g ディレクトリに移動します。
./install.sh
を実行してインストールします。
busybox ユーティリティの全ては /system/bin 内にシンボリックリンクを追加します、よって
ping
などのコマンドを直接使えます。次にサンプルコマンドを挙げます:
adb shell ping 8.8.8.8 => ping command adb shell ifconfig wlan0 => check tx/rx bytes adb shell cat /proc/net/route => check the default route adb shell iptables -t nat -nvL => check if the packets are sent from application to IP layer, check Chain OUTPUT (policy ACCEPT 2 packets, 168 bytes)
Firefox OS 端末からクラッシュレポートを取得する
クラッシュレポートを取得するFirefox OS アプリ — About Crashes — を作りました、これはバージョン 1.2+ で動きます。
端末にこれをインストールするには、次のステップに従います:
- About Crashes は認定アプリなので、認定アプリのデバッグを有効にします (アプリマネージャとWebIDE用の操作方法を見ます)。
- About Crashes アプリのzip ファイルを上記リンクからダウンロードしてローカルに展開します。
- デスクトップ版Firefox で、アプリマネージャかWebIDE (お使いのFirefox バージョンによります) を開きます、場所は ツール> Web 開発。
- いずれのツールでも、About Crashes アプリをパッケージアプリに追加します (アプリマネージャ: Add Packaged App オプションの隣のプラス記号をクリック、WebIDE: 左側のドロップダウンメニューで Add Packaged App... を選択)。
- 端末をアプリマネージャ/WebIDEに接続します (アプリマネージャ: UIの底部にある一覧から見つける、WebIDE: Select Runtimeから見つける)。
- 端末にアプリをインストールして開く (アプリマネージャ: アプリの Update ボタンを押す、WebIDE: "Play" ボタンを押す(Install and Run))。
- 端末でAbout Crashes の中のUpdate ボタンを押して最も最近のクラッシュを見る。
コマンドラインでクラッシュIDを取得する
クラッシュIDをコマンドライン経由で取得でき、そうするにはターミナルで次のコマンドを入力します:
adb shell ls -l /data/b2g/mozilla/Crash\ Reports/submitted/
クラッシュの一覧が長くて日付順にソートしたい場合、代わりに次のコマンドを使います:
adb shell busybox ls -ltr /data/b2g/mozilla/Crash\ Reports/submitted/
クラッシュレポートを取得・検証する
クラッシュレポートを検証するには:
- 拡張子なしのファイル名をコピーします。
- Mozilla Crash Reportsに移動します。
- 拡張子なしのファイル名を右上の検索ボックスにペーストします。
これで送信済みのクラッシュレポートが表示されます。
クラッシュを強制する方法
Firefox OS システムのクラッシュを引き起こすには、ターミナルで次のコマンドを入れてroot のプロセスIDを見つけます:
adb shell ps | grep b2g
最初の行に root
のある行を、そして/system/b2g/b2g
を最後に見つけるでしょう。次のように見えるはず:
root 109 1 191120 66024 ffffffff 400fa330 S /system/b2g/b2g
行の最初の数字は、プロセスをkill(強制停止)するのに必要となる kill プロセスid です。次のコマンドをこのIDをプレースホルダに当てはめて実行します:
adb shell kill -11 [ENTER ID HERE]
root プロセスの停止は端末をクラッシュされるでしょう。
b2g用の GDBスクリプトの実行方法
- 電話機でギャラリーアプリを起動し、ターミナルで次のコマンドを実行します:
adb shell b2g-ps
- ギャラリーアプリのpid を控えて、次のコマンドを実行します:
./run-gdb.sh attach <pid>
- クラッシュを起こす。
- このコマンドを実行します:
(gdb) bt