macOSからシステム診断ファイルを取得するにはどうすればよいですか?


20

クラッシュした(またはハングした)アプリをデバッグしようとしています。クラッシュから診断ファイルを取得するにはどうすればよいですか?

回答:


19

個々のクラッシュレポートは〜/ Library / Logs / CrashReporterに保存されますが、sysdiagnoseと呼ばれるシステム全体のログ収集ツールがあります。

問題が発生し始めたら、4つのコントロールキーを押しながらピリオド「。」を押します。キー。shift+ control+ option+ command+.

約15秒後、Finderウィンドウが開き、sysdiagnoseファイルが強調表示されます。

問題が発生し始めたら、「shift」+「control」+「option」+「command」キーを押しながらピリオド「。」を押します。 キー。

このショートカットはsysdiagnoseコマンドを実行するだけなので、端末に精通していてプロセスIDを渡したい場合は、その特定のプログラムに関する高度なデバッグ情報を取得できます。キーショートカットは、引数なしでツールを呼び出し、基本的なレポートのみをキャプチャします。


コマンドラインでこれを取得する方法はありますか?
シダサ

1
~/Library/Logs/CrashReporter.crashファイルが含まれていません。代わりに:/Library/Logs/DiagnosticReports~/Library/Logs/DiagnosticReports
グラハム・ペラン

sysdiagnoseのキーコードは、stackshotデーモンが実行されている場合にのみ機能します。では私の答えlaunchctlコマンドはデーモンを起動します。
グラハムペリン

このsysdiagnoseコマンドはOS 10.6でも使用できますか?which sysdiagnoseOS 10.6.8でマニュアルページが見つからず、何も返されない、または明示的にインストールする必要がありますか?
MostlyHarmless

1
@Martin私の答えはあなたの質問に対処するために編集されます。
グラハムペリン

16

Apple sysdiagnose

このシェルスクリプト(10.8以前)と10.9の同じ名前の実行可能プログラム:

  • システム全体の診断情報を収集します
  • OS X Lionおよびそれ以上に不可欠
  • 個別のダウンロードとしては利用できません
  • はオープンソースではありません(Appleにそうするように依頼しました)。

sysdiagnoseへのキーボードのみのアプローチの準備

ターミナルで、次のコマンドを実行します。

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.stackshot.plist
  • パスワードの入力を求められたら、オペレーティングシステムの管理者パスワードを入力します
  • これは1回限りであり、コマンドを繰り返す必要はありません。

次の重要なコードのメモを取ります。後で必要になります。

Control- Option- Command- Shift-.

システムによる診断

問題が発生した場合:

  1. キーコードを使用する
  2. 少なくとも10秒間、何も触れないでください
  3. sysdiagnoseルーチンのすべての部分が完了するのに5〜10分かかります-できる限り待機します(画面上に進行状況の表示はありません)
  4. Finderは最終結果までウィンドウを開くはずです。

例外的に

まれに、問題によってsysdiagnoseが完了しない場合があります(Appleに改善の提案をしました)。これが発生した場合-十分に長い間待っていることが確実な場合-Macを再起動するのが賢明かもしれません。次に:

  1. Finderで、 /private/var/tmp
  2. sysdiagnose_で始まる名前のファイルまたはフォルダーを探します
  3. そのファイルまたはフォルダーが存在する場合は、デスクトップなどの便利な場所に移動します。

ヒント

キーコードなしで、コマンドラインからsysdiagnoseを実行できます(以下のAppleマニュアルページを参照)。しかし、多くの場合、和音を使用する方がより便利または必要です。

私は不注意を奨励していない一方で、あなたはと少し不注意可能Control- Option- Command- Shift- ....あなたが避けるのに苦労場合はfn、ノートパソコンのキーを、ない心配を行います。偶然にそれを含めることは、の実行を妨げるべきではありませんsysdiagnose


システムによる診断の人間分析

ヒント:結果の分析について別の質問をしたい人がいるかもしれませんsysdiagnose。より一般的な回答が役立つ場合があります。

/tmpエリアのsysdiagnose_… がファイルの場合

sysdiagnose_….tar.gzファイルの存在は、sysdiagnoseルーチンのすべての部分が完了し、結果がアーカイブされたことを示します。必要に応じて、アーカイブを開きます-その内容はフォルダーとして表示されます。

/tmpエリアのsysdiagnose_… がフォルダーの場合

存在sysdiagnose_…フォルダ(ない.tar.gzファイル)のいずれかのことを示します。

  • ルーチンは完了前に中断されました。または
  • ルーチンの一部が完了できませんでした。

アーカイブ/フォルダー内

一部のファイルは人間が読める形式であり、問​​題のトラブルシューティングに役立つ場合があります。

その他のファイルは開発者向けです。

関連:

以下のために不完全ランsysdiagnoseそれにあるファイルにいくつかの注意を集中することが有用であり得る異常に空...


技術的およびその他の注意事項

stackshot(1)OS Xマニュアルページ

sysdiagnose(1)OS Xマニュアルページ

上記の一部は、他の場所に表示される受け入れられた回答のより一般的な版です。


診断および使用情報、その他の関心のあるファイル

コンソールのログリストにガイドされます。

コンソールのサイドバーのスクリーンショット

次のパスでファイルを見つけることを期待してください。

  • 〜/ Library / Logs / DiagnosticReports
  • /ライブラリ/ Logs / DiagnosticReports
  • 〜/ライブラリ/ Logs
  • /ライブラリ/ Logs
  • / private / var / log

2
→グラハム:これは1日+学習すべきことです!この種のツールは、オープンソースであれば、すべてのシステム管理者の入力に役立つと思います。
ダン

0

Console

既存の診断ファイルまたはクラッシュファイルを見つけるには、コンソールアプリを開き、ユーザーレポート(にある~/Library/Logs/DiagnosticReports)またはシステムレポート(にある/Library/Logs/DiagnosticReports)セクションでファイルを見つけます。参照:クラッシュログはどこにありますか?

sysdiagnose

あたりとして公式のsysdiagnose指示 MacOSのために、あなたは、トリガすることができますsysdiagnoseいずれかをによって:

注:上記のリンクにアクセスするには、最初にデベロッパーAppleサイトにログインする必要があります。

  • 次のキーを同時に短く押します。

    Command- Option- Shift- Control-Period (.)

    待って。sysdiagnoseプロセスが完了するまでに10分かかることがあります。完了すると、Finderは自動的に表示され、生成されたファイルが表示されます/private/var/tmp/(例:)sysdiagnose_2017.mm.dd_hh-mm-ss-0000_12345.tar.gz

  • sysdiagnose次のコマンドを入力して、ターミナルからa をトリガーします。

    sudo sysdiagnose
    

コアダンプ

クラッシュコアダンプを生成するには、「macOSでコアダンプを生成する方法」を参照してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.