Có bất kỳ nhật ký sự cố nào được tạo bởi Trình mô phỏng iPhone không?
Trình mô phỏng gặp sự cố rất nhiều nhưng không để lại bất kỳ dấu vết nào trong Bảng điều khiển ... nhật ký sự cố sẽ hữu ích.
Có bất kỳ nhật ký sự cố nào được tạo bởi Trình mô phỏng iPhone không?
Trình mô phỏng gặp sự cố rất nhiều nhưng không để lại bất kỳ dấu vết nào trong Bảng điều khiển ... nhật ký sự cố sẽ hữu ích.
Câu trả lời:
Bảng điều khiển sẽ hiển thị NSLog()
đầu ra từ một ứng dụng đang chạy trong trình mô phỏng. Nhật ký sự cố được lưu vào tệp.
Tôi đã tìm thấy một số trong thư mục chính của tôi dưới
~/Library/Logs/DiagnosticReports/
Chúng có phần mở rộng tệp là .crash
Có điều tôi chưa tìm ra là làm thế nào để chúng tạo ra ngay cả khi trình gỡ lỗi lấy được EXC_BAD_ACCESS
tín hiệu.
Cập nhật
Hiện tại, (OSX 10.11.6), .crash đăng nhập ~/Library/Logs/DiagnosticReports
, là khi trình giả lập tự gặp sự cố . Nhật ký ứng dụng bị lỗi (nhưng thiết bị giả lập vẫn chạy tốt), nằm trong:
~ / Thư viện / Nhật ký / CoreSimulator
Mỗi sự cố, có một thư mục con với một id duy nhất. Sắp xếp theo ngày để sự cố gần đây của bạn là thư mục con đầu tiên. Bên trong đó, hãy bắt đầu bằng cách nhìn vào stderr.log
và system.log
.
Cũng trực tiếp dưới CoreSimulator
, xem CoreSimulator.log
và Simulator.log
.
~/Library/Logs/DiagnosticReports/
Tôi khá chắc chắn rằng bạn có thể thấy điều này trong ứng dụng Bảng điều khiển OS X nằm trong Tiện ích. Nếu tôi sai, hãy chắc chắn bỏ phiếu cho tôi, vì vậy tôi xóa nó.
CẬP NHẬT:
Cụ thể (kể từ OSX 10.11.6),
Khi một ứng dụng gặp sự cố trên trình giả lập, một thư mục con (với một id duy nhất) sẽ được thêm vào:
~ / Thư viện / Nhật ký / CoreSimulator
Trong đó, hãy bắt đầu bằng cách kiểm tra stderr.log
và system.log
.
Khi chính trình giả lập gặp sự cố, một thư mục con sẽ được thêm vào:
~ / Library / Logs / DiagnosticReports
Đừng nhầm lẫn con đường này với
/ Thư viện / Nhật ký
(thiếu ~
khi bắt đầu), có các báo cáo khác nhau về máy Mac của bạn.
Đây là thứ phù hợp với tôi trong một trường hợp đặc biệt ... Ứng dụng của tôi đã gặp sự cố với SIGKILL khi nó kết thúc. Tôi sẽ thấy ngoại lệ trong main.m trong vài giây và sau đó ứng dụng sẽ hoàn tất việc kết thúc - do đó, không có cơ hội để lấy lại dấu vết.
Tôi đã tìm kiếm rất nhiều về "nơi mà trình mô phỏng lưu trữ nhật ký sự cố của nó" và không bao giờ tìm được câu trả lời. Tuy nhiên, thủ thuật sau khá hữu ích và tôi có thể lấy nhật ký sự cố ngay lập tức:
Về cơ bản, hãy mở /Application/Utilities/CrashReporterPrefs.app và thay đổi cài đặt thành “Developer”. Điều này sẽ khiến CrashReporter hiển thị cửa sổ bật lên với nhật ký sự cố sau khi ứng dụng của bạn gặp sự cố.
Tôi tìm thấy điều này trong phần “Xem bảng điều khiển trình mô phỏng iOS và nhật ký sự cố” trong tài liệu này của Apple: http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/125-Using_iOS_Simulator/ios_simulator_application. html
Điều này đáng tin cậy hơn nhiều. Chỉ trong vài bước, tôi đã có thể tìm thấy số dòng nguồn và tên phương pháp:
Nhật ký sự cố crash sẽ xuất hiện trong ~ / Library / Logs / CrashReporter.
Khi Xcode nhận được nhật ký sự cố từ một thiết bị được kết nối, nó sẽ lưu trữ chúng trong các thư mục con của ~ / Library / Logs / CrashReporter / MobileDevice