Làm thế nào để bạn có được các tệp chẩn đoán hệ thống từ macOS?


20

Tôi đang cố gắng gỡ lỗi một ứng dụng bị treo (hoặc treo). Làm cách nào để có được các tệp chẩn đoán từ sự cố?

Câu trả lời:


19

Các báo cáo sự cố riêng lẻ được lưu trữ trong ~ / Library / Logs / CrashReporter nhưng có một công cụ thu thập nhật ký toàn hệ thống được gọi là sysdiagnose .

Khi bạn bắt đầu gặp sự cố, hãy giữ 4 phím điều khiển và sau đó nhấn khoảng thời gian "." Chìa khóa. shift+ control+ option+ command+.

Sau khoảng 15 giây, cửa sổ Finder sẽ mở ra với tệp sysdiagnose được tô sáng.

Khi bạn bắt đầu gặp sự cố, hãy giữ các phím "shift" + "control" + "tùy chọn" + "lệnh" và sau đó nhấn dấu chấm "."  Chìa khóa.

Phím tắt này chỉ đơn giản thực thi sysdiagnoselệnh, vì vậy nếu bạn quen thuộc với thiết bị đầu cuối và muốn chuyển qua ID tiến trình, bạn có thể nhận được thông tin gỡ lỗi nâng cao về chương trình cụ thể đó. Phím tắt gọi công cụ không có đối số và chỉ chụp báo cáo cơ bản.


Có cách nào, để có được điều này bằng dòng lệnh?
Sidasa

1
~/Library/Logs/CrashReporterkhông chứa .crashcác tập tin. Thay vào đó: /Library/Logs/DiagnosticReports~/Library/Logs/DiagnosticReports
Graham Perrin

Hợp âm chính cho sysdiagnose sẽ chỉ hoạt động nếu daemon stackshot chạy. Trong câu trả lời của tôi , launchctllệnh sẽ bắt đầu daemon.
Graham Perrin

sysdiagnoselệnh cũng có sẵn trong OS 10.6? Tôi không tìm thấy trang man và which sysdiagnosekhông trả về trang nào trong OS 10.6.8, hay tôi phải cài đặt nó một cách rõ ràng?
Chủ yếu là không có

1
@Martin câu trả lời của tôi được chỉnh sửa để giải quyết câu hỏi của bạn.
Graham Perrin

16

Apple sysdiagnose

Kịch bản shell này (trên 10.8 trở xuống) và chương trình thực thi có cùng tên vào ngày 10.9:

  • tập hợp thông tin chẩn đoán trên toàn hệ thống
  • là không thể thiếu với OS X Lion và lớn hơn
  • không có sẵn dưới dạng tải xuống riêng biệt
  • không phải là nguồn mở (tôi đã yêu cầu Apple làm cho nó như vậy).

Chuẩn bị cho cách tiếp cận chỉ dùng bàn phím đối với sysdiagnose

Trong Terminal, chạy lệnh sau.

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.stackshot.plist
  • nếu được nhắc nhập mật khẩu, hãy nhập mật khẩu quản trị viên cho hệ điều hành
  • đó là một lần, không cần lặp lại lệnh.

Ghi chú bằng văn bản của hợp âm chính sau, bạn sẽ cần nó sau:

Control- Option- Command- Shift-.

Chẩn đoán bằng hệ thống

Khi xảy ra sự cố:

  1. sử dụng hợp âm chính
  2. trong ít nhất mười giây, không chạm vào gì
  3. có thể cho phép năm hoặc mười phút để tất cả các phần của sysdiagnosethói quen hoàn thành - chỉ cần đợi miễn là bạn có thể (sẽ không có dấu hiệu tiến triển trên màn hình)
  4. Finder sẽ mở một cửa sổ để kết quả cuối cùng.

Ngoại lệ

Trong một số trường hợp hiếm hoi, một vấn đề có thể ngăn sysdiagnose hoàn thành (tôi đã đưa ra đề xuất cải tiến cho Apple). Nếu điều này xảy ra - nếu bạn chắc chắn rằng bạn đã đợi đủ lâu - có thể hợp lý để khởi động lại máy Mac. Sau đó:

  1. trong Finder, đi đến /private/var/tmp
  2. tìm kiếm một tập tin hoặc thư mục có tên bắt đầu sysdiagnose_
  3. nếu tập tin hoặc thư mục đó tồn tại, có thể di chuyển nó đến một nơi thuận tiện - có thể là máy tính để bàn của bạn.

Gợi ý

Nếu không có hợp âm chính, bạn có thể chạy sysdiagnose từ dòng lệnh (xem bên dưới, trang hướng dẫn của Apple). Nhưng việc sử dụng hợp âm thường hữu ích hơn hoặc cần thiết hơn - vì vậy hãy chuẩn bị.

Trong khi tôi không khuyến khích sự bất cẩn, bạn có thể hơi bất cẩn với Control- Option- Command- Shift- .nếu bạn cố gắng tránh fnchìa khóa trên máy tính xách tay của mình, đừng lo lắng; bao gồm nó một cách tình cờ không nên ngăn cản việc chạy sysdiagnose.


Phân tích chẩn đoán của con người bởi hệ thống

Gợi ý: ai đó có thể muốn hỏi một câu hỏi riêng về phân tích kết quả của sysdiagnose- một câu trả lời tổng quát hơn có thể hữu ích.

Nếu sysdiagnose_ Hoài từ /tmpkhu vực là một tệp

Sự hiện diện của một sysdiagnose_….tar.gztệp chỉ ra rằng tất cả các phần của sysdiagnosethói quen đã hoàn thành và kết quả đã được lưu trữ. Nếu bạn muốn, hãy mở kho lưu trữ - nội dung của nó sẽ xuất hiện dưới dạng một thư mục.

Nếu sysdiagnose_ chụp từ /tmpkhu vực là một thư mục

Sự hiện diện của một sysdiagnose_…thư mục (không phải là một .tar.gztệp) chỉ ra rằng:

  • các thói quen đã bị gián đoạn trước khi hoàn thành; hoặc là
  • một số phần của thói quen không thể hoàn thành

Trong kho lưu trữ / thư mục

Một số tệp có thể đọc được bằng con người và có thể giúp khắc phục sự cố.

Các tệp khác được định hướng phát triển hơn.

Liên quan:

Đối với một hoạt động không hoàn chỉnh của sysdiagnosenó có thể hữu ích để tập trung một số sự chú ý vào các tệp trống rỗng bất thường


Ghi chú kỹ thuật và khác

stackshot (1) Trang hướng dẫn OS X

sysdiagnose (1) Trang hướng dẫn sử dụng OS X

Một số điều ở trên là phiên bản chung hơn của câu trả lời được chấp nhận xuất hiện ở nơi khác.


Thông tin chẩn đoán và sử dụng, các tập tin quan tâm khác

Được hướng dẫn bởi danh sách nhật ký trong Bảng điều khiển:

Ảnh chụp màn hình thanh bên của Bảng điều khiển

Mong đợi để tìm các tập tin tại các đường dẫn sau:

  • ~ / Thư viện / Nhật ký / Chẩn đoán Dịch chuyển
  • / Thư viện / Nhật ký / Chẩn đoán Dịch chuyển
  • ~ / Thư viện / Nhật ký
  • / Thư viện / Nhật ký
  • / riêng tư / var / log

2
→ Graham: đây là một ngày +: một cái gì đó để học! Tôi nghĩ rằng loại công cụ này sẽ có lợi cho tất cả các đầu vào của hệ thống nếu nó là nguồn mở.
dan

0

Console

Để tìm các tệp chẩn đoán hoặc sự cố hiện có, hãy mở ứng dụng Bảng điều khiển và tìm các tệp trong Báo cáo người dùng (nằm ở ~/Library/Logs/DiagnosticReports) trong phần Báo cáo hệ thống (nằm ở /Library/Logs/DiagnosticReports). Xem: Tôi có thể tìm thấy nhật ký sự cố của mình ở đâu?

sysdiagnose

Theo hướng dẫn chính thứcsysdiagnose cho macOS, bạn có thể kích hoạt một sysdiagnosetrong hai:

Lưu ý: Để truy cập liên kết trên, trước tiên bạn cần đăng nhập vào trang web của Nhà phát triển Apple .

  • Bấm nhanh các phím sau đồng thời:

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

    và chờ đợi. Các sysdiagnosequá trình có thể mất 10 phút để hoàn thành. Sau khi hoàn tất, Finder sẽ tự động xuất hiện hiển thị tệp được tạo trong /private/var/tmp/(ví dụ sysdiagnose_2017.mm.dd_hh-mm-ss-0000_12345.tar.gz).

  • Kích hoạt a sysdiagnosetừ Terminal bằng cách nhập lệnh này:

    sudo sysdiagnose
    

bãi lõi

Để tạo các bãi chứa lõi sự cố, hãy xem: Làm thế nào để tạo các bãi chứa lõi trên macOS?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.