Có bản ghi sự cố nào được tạo bởi iPhone Simulator không?Nhật ký sự cố được tạo bởi Trình mô phỏng iPhone?
Trình mô phỏng bị lỗi 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ản ghi sự cố nào được tạo bởi iPhone Simulator không?Nhật ký sự cố được tạo bởi Trình mô phỏng iPhone?
Trình mô phỏng bị lỗi 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.
Bảng điều khiển sẽ hiển thị đầu ra NSLog()
từ một ứng dụng đang chạy trong trình mô phỏng. Bản ghi 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/
Họ có một phần mở rộng tập tin của .crash
Something Tôi vẫn chưa tìm ra là làm thế nào để có được chúng để tạo ra ngay cả khi debugger lấy tín hiệu EXC_BAD_ACCESS
.
Cập nhật
Hiện nay, (OSX 10.11.6), các bản ghi .crash trong ~/Library/Logs/DiagnosticReports
, là khi emulator tự treo. Logs cho một ứng dụng đâm (nhưng thiết bị giả lập vẫn chạy tốt), đang ở:
~/Library/Logs/CoreSimulator
mỗi vụ tai nạn, có một thư mục con với một id duy nhất.Sắp xếp theo ngày, do đó 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 xem stderr.log
và system.log
.
Cũng trực tiếp dưới CoreSimulator
, xem CoreSimulator.log
và Simulator.log
.
Bingo! bạn đã cứu cuộc đời tôi! – Raptor
Bất kỳ ý tưởng nào tại sao các nhật ký này được ghi vào tệp thay vì hiển thị trong bảng điều khiển? Cảm ơn thông tin, btw. – aqua
Không có báo cáo sự cố nào của tôi trong trình mô phỏng iPhone hoặc iPad hiển thị trong thư mục này, có thể câu trả lời này cần được cập nhật? – Justin
Tôi khá chắc chắn rằng bạn có thể thấy điều này trong ứng dụng Bàn điều khiển OS X nằm trong Tiện ích. Nếu tôi là sai, mặc dù chắc chắn để bỏ phiếu cho tôi heck xuống vì vậy tôi xóa này.
UPDATE:
Cụ thể (như của OSX 10.11.6),
Khi một ứng dụng bị treo trên giả lập, một thư mục con (với một id duy nhất) sẽ được thêm vào:
~/Library/Logs/CoreSimulator
Trong đó, bắt đầu bằng cách kiểm tra stderr.log
và system.log
.
Khi giả lập tự tai nạn, 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
/Library/Logs
(thiếu ~
khi bắt đầu), trong đó có các báo cáo khác nhau về mac của bạn.
Đúng. Thông tin thêm tại đây http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/130-Debugging_Applications/debugging_applications.html –
dường như chỉ áp dụng cho các thiết bị iPhone thay vì giả lập. Đúng nếu tôi đã sai lầm. – Raptor
Bàn điều khiển có thể được mở từ trình mô phỏng bằng cách nhấn Cmd-/hoặc sử dụng tùy chọn trình đơn Debug/Open System Log .... – lambmj
Điều này đáng tin cậy hơn nhiều. Chỉ trong một vài bước tôi đã có thể tìm thấy những dòng nguồn số & Tên phương pháp:
Tôi không hiểu tại sao bạn cần nhật ký sự cố. Khi ứng dụng trong trình mô phỏng gặp sự cố nhưng trước khi bạn ngừng gỡ lỗi, tại loại lời nhắc gdb "bt" cho "backtrace" - bạn sẽ nhận được chính xác những gì sẽ xuất hiện trong nhật ký sự cố. –
Phương pháp này hoạt động tốt cho các bản ghi sự cố từ điện thoại của khách hàng. –
Đây là điều gì đó đã hiệu quả đối với tôi trong trường hợp đặc biệt ... Ứng dụng của tôi đã gặp sự cố với SIGKILL khi nó bị chấm dứt. Tôi sẽ thấy ngoại lệ trong main.m cho một vài giây, và sau đó các ứng dụng sẽ kết thúc chấm dứt - do đó, không có cơ hội để có được dấu vết trở lại.
Tôi đã thực hiện rất nhiều tìm kiếm về “trình mô phỏng lưu trữ nhật ký sự cố ở đâu” và không bao giờ tìm được câu trả lời. Tuy nhiên, mẹo sau đây khá tiện lợi và tôi có thể lấy nhật ký sự cố khi đang di chuyển:
Về cơ bản, mở /Applications/Utilities/CrashReporterPrefs.app và thay đổi cài đặt thành "Nhà phát triển". Đ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 thấy điều này trong “Xem iOS Simulator Console và sụp đổ Logs” trong doc này từ Apple: http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/125-Using_iOS_Simulator/ios_simulator_application.html
Nhân tiện, vấn đề ban đầu với SIGKILL mà tôi đã nghiên cứu hóa ra không phải là vấn đề: http://stackoverflow.com/questions/7901262/xcode-debugger-stops-with-sigkill-on-stop-button –
Tôi nên chỉ ra rằng không có ứng dụng CrashReporterPrefs trong ứng dụng/tiện ích, tuy nhiên tôi đã tìm kiếm và có thể tìm thấy ứng dụng ở nơi khác. – Justin
@Justin bạn đã tìm thấy ở đâu? –
Vụ tai nạn logs sụp đổ sẽ xuất hiện dưới ~/Library/Logs/CrashReporter.
Khi Xcode được ghi sụp đổ từ một thiết bị kết nối, nó sẽ lưu chúng trong các thư mục con của ~/Library/Logs/CrashReporter/MobileDevice
Đây là hơn một năm sau đó nhưng tôi thấy "ứng dụng trong mô phỏng" treo tại ~/Library/Logs/DiagnosticReports ... và có vẻ như: MobileSafari_2013-03-21-155844_My-MacBook-Pro.crash – Rob
Đối với tôi, đó là một biểu hiện mà tôi đã thêm vào cửa sổ xem trình gỡ rối. Khi một breakpoint bị tấn công, biểu thức xấu đã khiến cho XCode bị segfault.
Tôi không hiểu tại sao bạn cần nhật ký sự cố. Khi ứng dụng trong trình mô phỏng gặp sự cố nhưng trước khi bạn ngừng gỡ lỗi, tại loại lời nhắc gdb "bt" cho "backtrace" - bạn sẽ nhận được chính xác những gì sẽ xuất hiện trong nhật ký sự cố. (đã không nhận ra có câu hỏi necromancy ở đây, bỏ lỡ năm đăng bài) –
Nếu vụ tai nạn chỉ xảy ra khi bạn không được đính kèm bởi trình gỡ lỗi thì bạn sẽ cần các bản ghi. – Ian1971
bạn nói đúng. điều này có ý nghĩa! – Raptor