คุณจะรับไฟล์การวินิจฉัยระบบจาก macOS ได้อย่างไร


20

ฉันกำลังพยายามที่จะแก้ปัญหาแอพที่ผิดพลาด (หรือแฮงค์) ฉันจะรับไฟล์วินิจฉัยจากความผิดพลาดได้อย่างไร

คำตอบ:


19

รายงานความผิดพลาดส่วนบุคคลจะถูกเก็บไว้ใน ~ / Library / ท่อน / CrashReporter แต่มีระบบกว้างเข้าสู่ระบบเครื่องมือที่เรียกว่าคอลเลกชันsysdiagnose

เมื่อคุณเริ่มประสบปัญหาให้กดปุ่มควบคุม 4 ปุ่มค้างไว้แล้วกดจุด "" สำคัญ. shift+ control+ option+ command+.

หลังจากผ่านไปประมาณ 15 วินาทีหน้าต่าง Finder จะเปิดขึ้นพร้อมไฟล์ไฮไลต์ sysdiagnose

เมื่อคุณเริ่มประสบปัญหาให้กดปุ่ม "shift" + "control" + "ตัวเลือก" + "ตัวเลือก" + "ค้างไว้แล้วกดจุด"  สำคัญ.

ช็อตคัตนี้เพียงเรียกใช้งานsysdiagnoseคำสั่งดังนั้นหากคุณคุ้นเคยกับเทอร์มินัลและต้องการส่งผ่าน ID กระบวนการคุณสามารถรับข้อมูลการดีบักขั้นสูงเกี่ยวกับโปรแกรมเฉพาะนั้นได้ คีย์ลัดเรียกเครื่องมือโดยไม่มีอาร์กิวเมนต์และรวบรวมรายงานพื้นฐานเท่านั้น


มีวิธีการรับโดยบรรทัดคำสั่ง?
Sidasa

1
~/Library/Logs/CrashReporterไม่มี.crashไฟล์ แทน: /Library/Logs/DiagnosticReportsและ~/Library/Logs/DiagnosticReports
เกรแฮมเพอร์ริน

คีย์คอร์ดสำหรับ sysdiagnose จะทำงานเฉพาะในกรณีที่ stackshot daemon ทำงาน ในคำตอบของฉันที่launchctlคำสั่งจะเริ่มภูต
เกรแฮมเพอร์ริน

เป็นsysdiagnoseคำสั่งที่ยังมีอยู่ใน OS 10.6? ฉันไม่พบหน้าคนและwhich sysdiagnoseไม่ส่งคืนสิ่งใดใน OS 10.6.8 หรือฉันต้องติดตั้งอย่างละเอียดหรือไม่
อันตราย

1
@ มาร์ตินคำตอบของฉันถูกแก้ไขเพื่อตอบคำถามของคุณ
เกรแฮมเพอร์ริน

16

แอปเปิ้ล sysdiagnose

เชลล์สคริปต์นี้ (บน 10.8 และต่ำกว่า) และโปรแกรมที่ทำงานได้โดยใช้ชื่อเดียวกันใน 10.9:

  • รวบรวมข้อมูลการวินิจฉัยทั่วทั้งระบบ
  • เป็นส่วนประกอบสำคัญของ OS X Lion และสูงกว่า
  • ไม่สามารถดาวน์โหลดแยกได้
  • ไม่ใช่โอเพ่นซอร์ส (ฉันขอให้ Apple ทำเช่นนั้น)

การเตรียมพร้อมสำหรับวิธีการแบบคีย์บอร์ดเท่านั้นเพื่อ sysdiagnose

ใน Terminal ให้เรียกใช้คำสั่งต่อไปนี้

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.stackshot.plist
  • หากได้รับแจ้งให้ใส่รหัสผ่านให้ป้อนรหัสผ่านผู้ดูแลระบบของคุณสำหรับระบบปฏิบัติการ
  • นั่นเป็นครั้งเดียวไม่จำเป็นต้องทำซ้ำคำสั่ง

จดบันทึกย่อของคอร์ดคีย์ต่อไปนี้คุณจะต้องใช้ภายหลัง:

Control- Option- Command- Shift-.

การวินิจฉัยโดยระบบ

เมื่อเกิดปัญหา:

  1. ใช้คีย์คอร์ด
  2. เป็นเวลาอย่างน้อยสิบวินาทีแตะอะไรเลย
  3. ใช้เวลาประมาณห้าหรือสิบนาทีเพื่อให้ส่วนทั้งหมดของsysdiagnoseรูทีนเสร็จสมบูรณ์ - เพียงแค่รอให้นานที่สุดเท่าที่จะทำได้ (จะไม่มีการบ่งชี้ความคืบหน้าบนหน้าจอ)
  4. Finder ควรเปิดหน้าต่างเพื่อผลลัพธ์สุดท้าย

ล้ำ

ในกรณีที่ไม่ค่อยเกิดขึ้นปัญหาอาจป้องกันไม่ให้ sysdiagnose ดำเนินการจนเสร็จสิ้น (ฉันได้ให้คำแนะนำในการปรับปรุงแก่ 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อาจเป็นประโยชน์ในการมุ่งความสนใจไปที่ไฟล์ที่ว่างอย่างผิดปกติ ...


หมายเหตุด้านเทคนิคและอื่น ๆ

stackshot (1) หน้าคู่มือการใช้งาน OS X

sysdiagnose (1) หน้า OS X

สิ่งที่กล่าวมาข้างต้นเป็นคำตอบทั่วไปที่ได้รับการยอมรับซึ่งปรากฏที่อื่น


ข้อมูลการวินิจฉัยและการใช้งานไฟล์อื่น ๆ ที่น่าสนใจ

รับคำแนะนำจากรายการบันทึกในคอนโซล:

สกรีนช็อตของแถบด้านข้างของคอนโซล

คาดว่าจะค้นหาไฟล์ที่เส้นทางต่อไปนี้:

  • ~ / Library / ท่อน / DiagnosticReports
  • / Library / ท่อน / DiagnosticReports
  • ~ / Library / ท่อน
  • / Library / ท่อน
  • / เอกชน / var / log

2
→เกรแฮม: นี่เป็นวัน + +: เรียนรู้! ฉันคิดว่าเครื่องมือชนิดนี้จะเป็นประโยชน์ต่ออินพุต sysadmins ทั้งหมดหากเป็นโอเพนซอร์ส
และ

0

Console

หากต้องการค้นหาไฟล์วินิจฉัยหรือไฟล์ขัดข้องที่มีอยู่ให้เปิดแอปคอนโซลและค้นหาไฟล์ในรายงานผู้ใช้ (อยู่ที่~/Library/Logs/DiagnosticReports) หรือในส่วนรายงานระบบ (อยู่ที่/Library/Logs/DiagnosticReports) ดู: ฉันจะหาบันทึกข้อขัดข้องได้ที่ไหน

sysdiagnose

ตามคำแนะนำอย่างเป็นทางการsysdiagnoseสำหรับ macOS คุณสามารถเปิดใช้งานsysdiagnoseโดย:

หมายเหตุ: ในการเข้าถึงลิงค์ด้านบนคุณจะต้องเข้าสู่เว็บไซต์ Developer Appleก่อน

  • กดปุ่มต่อไปนี้พร้อมกันชั่วครู่:

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

    และรอ sysdiagnoseกระบวนการสามารถใช้เวลา 10 นาทีเพื่อให้ เมื่อเสร็จแล้วFinderควรปรากฏขึ้นโดยอัตโนมัติแสดงไฟล์ที่สร้างขึ้นใน/private/var/tmp/(เช่นsysdiagnose_2017.mm.dd_hh-mm-ss-0000_12345.tar.gz)

  • ทริกเกอร์sysdiagnoseจากเทอร์มินัลโดยป้อนคำสั่งนี้:

    sudo sysdiagnose
    

แกนทิ้ง

ในการสร้าง crash core dumps ให้ดู: วิธีสร้าง core dumps บน macOS ได้อย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.