Bagaimana Anda mendapatkan file diagnostik sistem dari macOS?

20

Saya mencoba men-debug aplikasi yang mogok (atau menggantung). Bagaimana saya mendapatkan file diagnostik dari crash?

Stephen
sumber

Jawaban:

19

Laporan kerusakan individual disimpan di ~ / Library / Logs / CrashReporter tetapi ada alat koleksi sistem log lebar yang disebut sysdiagnose .

Setelah Anda mulai mengalami masalah, tahan 4 tombol kontrol dan kemudian tekan periode "." kunci. shift+ control+ option+ command+.

Setelah sekitar 15 detik, jendela Finder akan terbuka dengan file sysdiagnose disorot.

Setelah Anda mulai mengalami masalah, tahan tombol "shift" + "control" + "option" + "command" dan kemudian tekan periode "."  kunci.

Pintasan ini hanya menjalankan sysdiagnoseperintah, jadi jika Anda terbiasa dengan terminal dan ingin memberikan ID proses, Anda bisa mendapatkan informasi debug yang ditingkatkan tentang program spesifik itu. Pintasan kunci memanggil alat tanpa argumen dan hanya menangkap laporan dasar.

Stephen
sumber
apakah ada cara, untuk mendapatkan ini dengan command line?
Sidasa
1
~/Library/Logs/CrashReportertidak mengandung .crashfile. Sebaliknya: /Library/Logs/DiagnosticReportsdan~/Library/Logs/DiagnosticReports
Graham Perrin
Kunci kunci untuk sysdiagnose hanya akan berfungsi jika daemon stackshot berjalan. Dalam jawaban saya , launchctlperintah akan memulai daemon.
Graham Perrin
apakah sysdiagnoseperintahnya juga tersedia di OS 10.6? Saya tidak menemukan halaman manual dan which sysdiagnosetidak mengembalikan apa pun di OS 10.6.8, atau apakah saya harus menginstalnya secara eksplisit?
MostlyHarmless
1
@Martin jawaban saya diedit untuk menjawab pertanyaan Anda.
Graham Perrin
16

Apple sysdiagnose

Script shell ini (pada 10.8 dan lebih rendah) dan program yang dapat dieksekusi dengan nama yang sama pada 10.9:

  • mengumpulkan informasi diagnostik seluruh sistem
  • merupakan bagian integral dari OS X Lion dan lebih besar
  • tidak tersedia sebagai unduhan terpisah
  • bukan open source (saya telah meminta Apple untuk membuatnya jadi).

Mempersiapkan pendekatan keyboard-satunya untuk sysdiagnose

Di Terminal, jalankan perintah berikut.

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.stackshot.plist
  • jika diminta kata sandi, masukkan kata sandi admin Anda untuk sistem operasi
  • itu sekali saja, tidak perlu mengulangi perintah.

Buat catatan tertulis dari chord kunci berikut, Anda akan membutuhkannya nanti:

Control- Option- Command- Shift-.

Diagnosis oleh sistem

Ketika masalah terjadi:

  1. gunakan kunci nada
  2. setidaknya selama sepuluh detik, tidak menyentuh apa pun
  3. biarkan mungkin lima atau sepuluh menit untuk semua bagian dari sysdiagnoserutinitas selesai - cukup tunggu selama Anda bisa (tidak akan ada indikasi kemajuan di layar)
  4. Finder harus membuka jendela ke hasil akhir.

Sangat

Dalam kasus yang jarang terjadi, masalah dapat mencegah penyelesaian sysdiagnose (saya telah membuat saran perbaikan untuk Apple). Jika ini terjadi - jika Anda yakin telah menunggu cukup lama - mungkin masuk akal untuk me-restart Mac. Kemudian:

  1. di Finder, buka /private/var/tmp
  2. mencari file atau folder dengan nama awal sysdiagnose_
  3. jika file atau folder itu ada, pindahkan ke tempat yang nyaman - desktop Anda, mungkin.

Petunjuk

Tanpa kunci akord, Anda dapat menjalankan sysdiagnose dari baris perintah (lihat di bawah, halaman manual Apple). Tetapi seringkali lebih bermanfaat, atau perlu, menggunakan akor - jadi bersiaplah.

Sementara saya tidak mendorong kecerobohan, Anda bisa sedikit ceroboh dengan Control- Option- Command- Shift- .... jika Anda kesulitan untuk menghindari fnkunci pada laptop Anda, jangan khawatir; termasuk itu secara tidak sengaja seharusnya tidak mencegah jalannya sysdiagnose.


Analisis diagnosis oleh manusia oleh sistem

Petunjuk: seseorang mungkin ingin mengajukan pertanyaan terpisah tentang menganalisis hasil sysdiagnose- jawaban yang lebih umum dapat berguna.

Jika sysdiagnose_ ... dari /tmparea adalah file

Kehadiran sysdiagnose_….tar.gzfile menunjukkan bahwa semua bagian sysdiagnoserutin selesai, dan bahwa hasilnya diarsipkan. Jika diinginkan, buka arsip - isinya akan muncul sebagai folder.

Jika sysdiagnose_ ... dari /tmparea tersebut adalah folder

Kehadiran sysdiagnose_…folder (bukan .tar.gzfile) menunjukkan bahwa:

  • rutinitas terputus sebelum selesai; atau
  • beberapa bagian dari rutinitas tidak dapat diselesaikan.

Di dalam arsip / folder

Beberapa file dapat dibaca oleh manusia dan dapat membantu memecahkan masalah.

File lain lebih berorientasi pada pengembang.

Terkait:

Untuk menjalankannya yang tidak lengkapsysdiagnose mungkin berguna untuk memfokuskan perhatian pada file yang kosong secara tidak normal ...


Catatan teknis dan lainnya

stackshot (1) Halaman Manual OS X

sysdiagnose (1) Halaman Manual OS X

Beberapa dari apa di atas adalah edisi yang lebih umum dari jawaban yang diterima yang muncul di tempat lain.


Informasi diagnostik dan penggunaan, file lain yang menarik

Dipandu oleh daftar log di Konsol:

Tangkapan layar bilah samping Konsol

Berharap menemukan file di jalur berikut:

  • ~ / Perpustakaan / Log / Laporan Diagnostik
  • / Perpustakaan / Log / Laporan Diagnostik
  • ~ / Perpustakaan / Log
  • / Perpustakaan / Log
  • / private / var / log
Graham Perrin
sumber
1
→ Graham: ini hari +: sesuatu untuk dipelajari! Saya pikir alat semacam ini akan menguntungkan semua input sysadmin jika itu open source.
dan
0

Console

Untuk menemukan file diagnostik atau kerusakan yang ada, buka aplikasi Konsol dan temukan file di Laporan Pengguna (berada di ~/Library/Logs/DiagnosticReports) di bagian atau Laporan Sistem (terletak di /Library/Logs/DiagnosticReports). Lihat: Di mana saya dapat menemukan log kerusakan saya?

sysdiagnose

Sesuai instruksi resmisysdiagnose untuk macOS, Anda dapat memicu sysdiagnosesalah satunya dengan:

Catatan: Untuk mengakses tautan di atas, Anda harus masuk ke situs Pengembang Apple terlebih dahulu.

  • Tekan sebentar tombol berikut secara bersamaan:

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

    dan tunggu. The sysdiagnoseProses dapat mengambil 10 menit untuk menyelesaikan. Setelah selesai, Finder akan secara otomatis muncul menampilkan file yang dihasilkan di /private/var/tmp/(misalnya sysdiagnose_2017.mm.dd_hh-mm-ss-0000_12345.tar.gz).

  • Picu a sysdiagnosedari Terminal dengan memasukkan perintah ini:

    sudo sysdiagnose
    

kesedihan inti

Untuk menghasilkan dump core crash, lihat: Cara membuat core dump pada macOS?

kenorb
sumber