# クラッシュレポート

> アプリが思いがけず閉じたときにステーションが残すもの、何をいつ送り、いつたずねるか、そして開発版が持つ 2 つのデバッグのコマンドです。

クラッシュレポートは、設定のページの診断の組のただ 1 つの行です。クラッシュが、アプリが落ちていく途中で送られることは決してありません。ファイルに取り込まれ、次の起動がそれを送るか、あなたに見せてたずねます。この節は、そのどちらかを決める 1 つのスイッチを持ちます。このページには **設定の変更** の権限が要ります。

## クラッシュレポートを自動で送信する {#send-crash-reports-automatically}

| 欄 | 何であるか | 値と既定 | 効き方 |
| --- | --- | --- | --- |
| クラッシュレポートを自動で送信する | 「アプリがクラッシュしたとき、次の起動で確認を求めずにレポートを送ります。無効のときは、先にレポートを表示して確認します。」 | 入か切です。既定は切です。 | 入のとき、次の起動が取り込んだレポートを黙って送り、サーバーが受け取ったらそれを消します。切のとき、次に画面が出る起動で同意のダイアログが開きます。 |

ランタイムが止まっている間、このページはそもそも描かれません（[設定](settings) を参照）。同じ申し出は同意のダイアログの中でも、「クラッシュレポートを常に自動で送信する」のチェックボックスとして差し出され、そこでチェックを入れると、このスイッチが入になります。スイッチの下でカードは述べます。「不具合の報告、改善の提案、ドライバーの要望はアカウントのページから行ってください。」そのフォームが [フィードバック](account-feedback) で、Ganter アカウントで送るからです。

## レポートに何が入るか {#what-a-report-contains}

処理されないエラーがアプリを落とすと、全体の受け止め役が 1 つのファイル、ステーションのデータの根の下の `crash\pending-crash.json` を書き、いちばん新しいクラッシュだけを保ちます。中身はこれです。

- アプリのバージョンと Windows のバージョン。
- そのエラーがどこで受け止められたか（Dispatcher、AppDomain、TaskScheduler、あるいは起動が終わりきらなかった場合は Startup）。
- 例外の型、そのメッセージ、内側の例外も含む完全なスタックの文。
- いちばん新しいログのファイルの最後の 60 行で、その障害に至る前後の様子です。
- それが起きた瞬間。

書かれる前に、Windows のユーザー名とプロファイルの経路は、現れるところすべてで `<user>` と `<userprofile>` に置き換えられます。この洗い落としは安全網であって、保証ではありません。自由に書かれたログの行はほかの名前を運びうるので、だからこそ、何かが外へ出る前にダイアログが中身の全体を見せます。

## 次の起動での同意のダイアログ {#the-consent-dialog-at-the-next-start}

スイッチが切のとき、クラッシュのあと最初に画面が出る起動で、シェルの上に **クラッシュレポートを送信しますか？** が開きます。「前回、Ganter Lab が予期せず終了しました。このレポートを送っていただくと修正に役立ちます。内容はエラーと、直近のログの短い抜粋です。送信する前に下でご確認ください。」**クラッシュの詳細** の箱が、送られることになるものをそのまま見せ、**コピー** のボタンが同じ文をクリップボードに置くので（一瞬「コピーしました」と出ます）、それを検索したり、サポートに渡したりできます。クリップボードが受け付けなかったときは、ボタンが「コピーできませんでした」に変わります。コピーされていないものをコピーできたと思わずに済みますし、本文は画面に残るので手で選択できます。

| コマンド | 何をするか | 灰色になるとき（状況） | 描かれないとき（ロール） |
| --- | --- | --- | --- |
| クラッシュレポートを常に自動で送信する（チェックボックス） | ダイアログが閉じるとき、このレポートを送っても送らなくても、上のスイッチを入にします。 | ランタイムが止まっている間（ツールチップは「ランタイム停止中」）。このダイアログはシェルのものなので、このページが描かれないときでも描かれます。 | ありません。 |
| 送信しない | このレポートを捨ててファイルを消します。これについて、ふたたびたずねられることはありません。 | ありません。 | ありません。 |
| レポートを送信 | 送ります。うまくいけば知らせとして「クラッシュレポートを送信しました」、サーバーに届かなかったときは理由とともに「クラッシュレポートを送信できませんでした」です。後者ではファイルが残り、いま送ることも、次の起動でまたたずねられることもできます。 | ありません。 | ありません。 |

通知領域に隠れた起動（Windows と一緒に起動する、または `--tray` での起動）では、ダイアログは出ません。レポートは次に画面が出る起動を待ちます。スイッチが入のときは、送信がダイアログなしで背後で行われ、ネットワークにつながっていなかったステーションはファイルを保って、次の起動でやり直します。

レポートは Ganter のサーバーのフィードバックの endpoint へ行きます。[アカウント](account) のページに Ganter アカウントがサインインしていればそれに帰属し、なければアカウントなしで受け取られます。ステーションから出るものはほかにありません。利用状況の遠隔測定はありません。

## デバッグのコマンド {#the-debug-commands}

開発版のアプリは、スイッチの下に 2 つのボタンを持ちます。インストールされた製品版はどちらも持ちません。

| コマンド | 何をするか | 灰色になるとき（状況） | 描かれないとき（ロール） |
| --- | --- | --- | --- |
| クラッシュを模擬する（デバッグ） | UI のスレッドで処理されないエラーを投げるので、取り込みの道が本物のクラッシュのファイルを書き、次の起動が同意の流れを試します。 | ありません。 | 製品版では出ません。 |
| 画面を取り込む（デバッグ） | エージェントの UI のツールが使うのと同じ画面の取り込みを、同じプロセスの中で走らせ、結果をボタンの下に出します。「保存しました：`<経路>`」または「取り込みに失敗しました：`<理由>`」です。ウィンドウのないホストでは、取り込みを利用できないと結果が述べます。 | ありません。 | 製品版では出ません。 |

## この節がしないこと {#what-this-section-does-not-do}

ここにログを見る場所はありません。診断ログは [イベント](events) の、そのコンソールのタブに、詳細記録とサポートパッケージとともにあります。不具合の報告と要望は [フィードバック](account-feedback) です。クラッシュのファイルをアプリから編集することはできず、スイッチかダイアログの送信のどちらかなしに、アプリが何かを送ることは決してありません。
