Як отримати файли системної діагностики з macOS?


20

Я намагаюся налагодити збій (або висячий) додаток. Як отримати діагностичні файли після збою?

Відповіді:


19

Окремі звіти про збої зберігаються у ~ / Бібліотеці / Журналах / CrashReporter, але існує загальносистемний інструмент збору журналів під назвою sysdiagnose .

Як тільки ви почнете відчувати проблему, утримуйте 4 контрольних клавіші та натисніть період ". ключ. shift+ control+ option+ command+.

Приблизно через 15 секунд відкриється вікно Finder з виділеним файлом sysdiagnose.

Після того, як ви почнете відчувати проблему, утримуйте клавіші "shift" + "control" + "option" + "command", а потім натисніть період ".  ключ.

Цей ярлик просто виконує sysdiagnoseкоманду, тому якщо ви знайомі з терміналом і хочете передати ідентифікатор процесу, ви можете отримати розширену інформацію про налагодження про цю конкретну програму. Клавіша швидкого доступу викликає інструмент без аргументів і фіксує лише основний звіт.


чи є спосіб отримати це за допомогою командного рядка?
Сідаса

1
~/Library/Logs/CrashReporterне містить .crashфайлів. Натомість: /Library/Logs/DiagnosticReportsі~/Library/Logs/DiagnosticReports
Грем Перрін

Ключовий акорд для sysdiagnose буде працювати лише в тому випадку, якщо демон стека працює. У моїй обороні , то launchctlкоманда запуску демона.
Грем Перрін

Чи sysdiagnoseдоступна також команда в ОС 10.6? Я не знаходжу довідкову сторінку і which sysdiagnoseнічого не повертає в ОС 10.6.8, або мені потрібно явно її встановлювати?
MostlyHarmless

1
@Martin моя відповідь відредагована для вирішення вашого питання.
Грехем Перрін

16

Яблучна системодіагностика

Цей скрипт оболонки (на 10,8 і нижче) та виконавча програма з однойменною назвою 10.9:

  • збирає загальносистемну діагностичну інформацію
  • є невід'ємною частиною для OS X Lion і більше
  • недоступний як окреме завантаження
  • не є відкритим кодом (я попросив Apple зробити так).

Підготовка до підходу до систематичної діагностики лише для клавіатури

У Терміналі запустіть таку команду.

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.stackshot.plist
  • якщо буде запропоновано ввести пароль, введіть пароль свого адміністратора для операційної системи
  • це одноразово, не потрібно повторювати команду.

Візьміть письмову записку на наступний ключовий акорд, він вам знадобиться пізніше:

Control- Option- Command- Shift-.

Діагностика системою

Якщо виникає проблема:

  1. використовуйте клавіш акорда
  2. принаймні десять секунд нічого не торкайтеся
  3. дозвольте, можливо, п’ять-десять хвилин, щоб всі частини sysdiagnoseрутини були завершені - просто зачекайте, поки зможете (на екрані не буде вказівки про хід)
  4. Finder повинен відкрити вікно для кінцевого результату.

Винятково

У рідкісних випадках проблема може запобігти завершенню системного діагнозу (я вносив пропозиції щодо вдосконалення до Apple). Якщо це трапиться - якщо ви впевнені, що ви чекали досить довго - можливо, розумно перезапустити Mac. Потім:

  1. у Finder, перейдіть на сторінку /private/var/tmp
  2. шукати файл або папку з іменем, що починається sysdiagnose_
  3. якщо цей файл або папка існує, перемістіть його в зручне місце - можливо, на робочий стіл.

Підказки

Без ключового акорда ви можете запустити sysdiagnose з командного рядка (див. Нижче, сторінку керівництва Apple). Але часто користуватися акордом корисніше чи потрібно, тому будьте готові.

Хоча я не заохочую недбалість, ви можете бути трохи недбалі з Control- Option- Command- Shift- .... якщо ви намагаєтеся уникати fnключа на своєму ноутбуці, не хвилюйтеся; включення його випадково не повинно перешкоджати пробігу sysdiagnose.


Людський аналіз діагностики системою

Підказка: хтось, можливо, захоче поставити окреме запитання щодо аналізу результатів sysdiagnose- більш узагальнена відповідь може бути корисною.

Якщо sysdiagnose_… з /tmpобласті є файлом

Наявність sysdiagnose_….tar.gzфайлу вказує на те, що всі частини sysdiagnoseрозпорядку виконані та результати архівовані. За бажанням відкрийте архів - його вміст з’явиться у вигляді папки.

Якщо sysdiagnose_… з /tmpобласті знаходиться папка

Наявність sysdiagnose_…папки (а не .tar.gzфайлу) вказує на те, що:

  • рутина була перервана до завершення; або
  • якусь частину розпорядку не вдалося виконати.

В архіві / папці

Деякі файли читаються людиною і можуть допомогти вирішити проблему.

Інші файли орієнтовані на розробників.

Пов'язані:

Для неповного запуску sysdiagnoseможе бути корисно зосередити деяку увагу на файлах, які аномально порожні ...


Технічні та інші примітки

стек (1) Сторінка керівництва по OS X

sysdiagnose (1) Сторінка керівництва по OS X

Дещо з вищесказаного є більш загальним виданням прийнятої відповіді, яке з’являється в інших місцях.


Інформація про діагностику та використання, інші цікаві файли

Керуйтеся списком журналів у консолі:

Скріншот бічної панелі консолі

Розраховуйте знайти файли за такими шляхами:

  • ~ / Бібліотека / Журнали / Діагностичні звіти
  • / Бібліотека / Журнали / Діагностичні звіти
  • ~ / Бібліотека / Журнали
  • / Бібліотека / Журнали
  • / приватний / var / log

2
→ Грем: це + день: чомусь навчитися! Я думаю, що цей інструмент виграв би для всіх системних адміністраторів, якби він був відкритим кодом.
дан

0

Console

Щоб знайти існуючі діагностичні або збої файлів, відкрийте додаток 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).

  • Запустити a sysdiagnoseз терміналу, ввівши цю команду:

    sudo sysdiagnose
    

основні відвали

Щоб створити скиди основних збоїв, див: Як генерувати основні скиди на macOS?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.