歴史
クラッシュレポーター
クラッシュレポーターは通常、機能がレポートクラッシュの詳細を識別し、本番環境または開発/テスト環境でクラッシュが発生したときに警告するシステムソフトウェアです。クラッシュレポートには、多くの場合、スタックトレース、クラッシュのタイプ、傾向、ソフトウェアのバージョンなどのデータが含まれます。これらのレポートは、Web、SAAS、モバイルアプリなどのソフトウェア開発者が、クラッシュの原因となっている根本的な問題を診断して修正するのに役立ちます。クラッシュレポートには、パスワード、電子メールアドレス、連絡先情報などの機密情報が含まれている可能性があるため、コンピューターセキュリティの分野の研究者にとって関心の対象となっています。
開発サイクルの一部としてクラッシュレポートツールを実装することは標準になり、クラッシュレポートツールはコモディティになりました。それらの多くはCrashlyticsのように無料で提供されています。
ソフトウェア開発エコシステムの一部である多くの巨大な業界プレーヤーがゲームに参入しました。 Twitter、Googleなどの企業は、ソフトウェア開発者がAPIを使用することを奨励することに多大な努力を払っています。これにより、将来的に(広告やその他のメカニズムを通じて)収益が増加します。可能な限り多くの開発問題に対してエレガントなソリューションを提供しなければならないことに気付いた場合、競合他社は行動を起こし、高度な機能を追加し続けます。クラッシュレポートツールは、巨大企業がソリューションのポートフォリオに含める重要な開発機能を提供します。
多くのクラッシュレポートツールは、モバイルアプリに特化しています。それらの多くはSDKです。
マックOS
macOSでは、/ System / Library / CoreServices / Crash Reporter.appに標準のクラッシュレポーターがあります。 Crash Reporter.appは、エンジニアが確認できるようにUnixクラッシュログをAppleに送信します。ウィンドウの上部のテキストフィールドにはクラッシュログがあり、下部のフィールドにはユーザーのコメントが表示されます。ユーザーは、ログをコピーしてメールクライアントに貼り付けて、アプリケーションベンダーに送信して使用することもできます。 Crash Reporter.appには、クラッシュ時に何も表示しない、「アプリケーションがクラッシュしました」ダイアログボックスを表示する、またはクラッシュレポートウィンドウを表示する3つのメインモードがあります。
窓
Microsoft Windowsには、オンラインエラー解析のためにMicrosoftにクラッシュレポートを送信するようユーザーに促すWindowsエラーレポートと呼ばれるクラッシュレポートサービスが含まれています。情報は、Microsoftが実行する中央データベースに送られます。これは、クラッシュの原因となった会社または開発チームが問題をデバッグして解決するのに役立つ診断情報で構成されています。サードパーティソフトウェアのクラッシュレポートは、Microsoftからアクセスを許可されたサードパーティの開発者が利用できます。
システムは、デバッグおよびリリースプロセスのすべての部分を考慮し、Windows Updateを介して対象のバグ修正を適用できるようにします。つまり、特定のタイプのクラッシュを経験している人だけがバグ修正を提供できるため、問題への露出を制限できます。
Der Spiegelによると、Microsoftクラッシュレポーターは、NSAのTailored Access Operations(TAO)ユニットによって悪用され、メキシコの公安事務局のコンピューターをハッキングしています。同じソースによると、Microsoftのクラッシュレポートは、そのような操作を容易にするために、NSAのXKeyscoreデータベースに自動的に収集されます。
CrashRpt
Windows用の別のエラーレポートライブラリはCrashRptです。 CrashRptライブラリは、Microsoft Visual C ++で作成され、Windowsで実行されるアプリケーション用の軽量のオープンソースエラー処理フレームワークです。ライブラリは、新しいBSDライセンスの下で配布されています。
CrashRptは未処理の例外をインターセプトし、クラッシュミニダンプファイルを作成し、XML形式でクラッシュ記述子を作成し、ユーザーがクラッシュレポートを確認できるようにするインターフェイスを提示し、最後にクラッシュレポートを圧縮してソフトウェアサポートチームに送信します。
CrashRptは、crproberという名前のクラッシュレポート分析用のサーバー側コマンドラインツールも提供します。このツールは、受信したすべてのクラッシュレポートをディレクトリから読み取り、各クラッシュレポートのテキスト形式の要約ファイルを生成できます。また、同様のクラッシュレポートをグループ化して、最も一般的な問題の判別を容易にします。 crproberツールはグラフィカルインターフェースを提供しないため、かなり不可解で使いにくいです。
また、CrashRptライブラリによって送信されたクラッシュレポートを保存、整理、分析できるCrashFix Serverという名前のオープンソースサーバーソフトウェアもあります。同様のクラッシュレポートをグループ化し、バグトラッカーを組み込み、統計レポートを生成できます。 CrashFixサーバーは、複数のプロジェクトメンバーが共同作業を行えるWebベースのユーザーインターフェイスを提供します(デバッグシンボルのアップロード、クラッシュレポートの閲覧、バグとクラッシュレポートの関連付け)。
Linux
ABRT
ABRT(Automated Bug Reporting Tool)はディストリビューションに依存しないと主張されていますが、2013年の時点ではFedoraおよびRed Hat Enterprise Linuxディストリビューションにのみデプロイされています。 ABRTはアプリケーションからのコアダンプをインターセプトし、(ユーザー確認後)Fedora Bugzillaなどのさまざまなバグ追跡システムにバグレポートを送信します。
Ubuntuエラートラッカー
Ubuntuはerrors.ubuntu.comで公開エラートラッカーをホストしており、何百万台ものマシンから毎日何十万ものエラーレポートを収集しています。 Ubuntuでプログラムがクラッシュした場合、クラッシュハンドラー(Apportなど)がユーザーに通知し、クラッシュの報告を提案します。ユーザーがクラッシュを報告することを選択した場合、分析のために詳細(おそらくコアダンプを含む)がUbuntuサーバー( daisy.ubuntu.com )にアップロードされます。コアダンプは自動的に処理され、スタックトレースとクラッシュ署名が作成されます。クラッシュシグニチャは、同じエラーが原因の後続のクラッシュレポートを分類するために使用されます。
GNOME
Bug Buddyは、GNOMEプラットフォームで使用されるクラッシュ報告ツールです。 GNOMEライブラリを使用するアプリケーションがクラッシュすると、Bug Buddyはgdbを使用してスタックトレースを生成し、GNOME bugzillaにレポートを送信するようユーザーを招待します。ユーザーはコメントを追加し、クラッシュレポートの詳細を表示できます。
KDE
KDEが使用するクラッシュレポートツールはDr. Konqiと呼ばれます。ユーザーはgdbを使用してバックトレースを取得することもできます。
Mozilla
トークバック
Talkback ( Quality Feedback Agentとも呼ばれます)は、バージョン1.8.1までのMozillaソフトウェアで製品のクラッシュを集約サーバーに報告して集約または個別の分析を行うためのクラッシュレポーターでした。 Talkbackは、SupportSoftによってMozilla Corporationにライセンスされている独自のソフトウェアです。 Mozilla製品(例:Mozilla Firefox、Mozilla Thunderbird)がTalkbackを有効にしてクラッシュすると、Talkbackエージェントが表示され、クラッシュに関するオプションの情報を提供するようユーザーに促します。 Talkbackは、有効にすると、Talkbackエージェントとともに表示されるネイティブOSクラッシュレポーターを置き換えません。 Firefoxのバージョン3以降、TalkbackはBreakpadに置き換えられました。
ブレイクパッド
Breakpad (以前はAirbagと呼ばれていました)は、Talkbackのオープンソースの代替品です。 GoogleとMozillaによって開発され、FirefoxやThunderbirdなどの現在のMozilla製品で使用されています。その重要性は、最初のオープンソースのマルチプラットフォームのクラッシュレポートシステムです。
2007年以降、BreakpadはWindowsおよびMac OS X、Linux上のFirefoxに含まれています。 Breakpadは通常、ユーザーからクラッシュを受信して分類するSocorroとペアになっています。
Breakpad自体は、レポートメカニズムを含まないため、クラッシュレポートシステムの一部にすぎません。
クラッシュパッド
Crashpadは、ChromiumでGoogleが使用するオープンソースのクラッシュレポーターです。これは、macOS 10.10のアップデートによりBreakpadで使用されていたAPIが削除されたため、Breakpadの代替として開発されました。 Crashpadは現在、クラッシュ報告クライアントとmacOSおよびWindows用のいくつかの関連ツールで構成されており、これらのプラットフォームではほぼ完全であると見なされています。 Crashpadは、2015年3月にmacOSで、2015年11月にWindowsでChromiumのクラッシュレポータークライアントになりました。
World of Warcraft
World of Warcraftは、独自のクラッシュレポーター「エラーレポーター」を使用する別のプログラムです。エラーレポーターは常にクラッシュを検出するわけではありません。 OSクラッシュレポーターが代わりに呼び出される場合があります。 Error Reporterは、エラーの報告中にクラッシュすることさえ知られています。
モバイルOS
AndroidおよびiOSオペレーティングシステムには、クラッシュレポート機能も組み込まれています。