iPhone Simulator에서 생성 된 충돌 로그가 있습니까?
시뮬레이터는 많이 충돌하지만 콘솔에 흔적을 남기지 않습니다. 충돌 로그가 유용합니다.
답변
콘솔은 NSLog()
시뮬레이터에서 실행중인 앱 의 출력을 표시합니다 . 충돌 로그는 파일에 저장됩니다.
내 홈 디렉토리에서 일부를 찾았습니다.
~/Library/Logs/DiagnosticReports/
파일 확장자는 .crash
내가 아직 알아 내지 못한 것은 디버거가 EXC_BAD_ACCESS
신호를 잡아도 생성하도록하는 방법입니다.
최신 정보
현재 (OSX 10.11.6) .crash 로그인 은 에뮬레이터 자체가 충돌~/Library/Logs/DiagnosticReports
할 때 발생 합니다. 앱 충돌에 대한 로그 (하지만 에뮬레이터 기기는 여전히 정상적으로 실행 중임)는 다음 위치에 있습니다.
~ / Library / Logs / CoreSimulator
크래시마다 고유 ID가있는 하위 폴더가 있습니다. 최근 충돌이 첫 번째 하위 폴더가되도록 날짜별로 정렬합니다. 그 안에서, stderr.log
그리고 system.log
.
또한 직접 아래 CoreSimulator
를 참조 CoreSimulator.log
하고 Simulator.log
.
답변
유틸리티에있는 OS X 콘솔 앱에서 이것을 볼 수 있다고 확신합니다. 그래도 내가 틀렸다면 저에게 투표하여 이것을 삭제하십시오.
최신 정보:
특히 (OSX 10.11.6 기준),
에뮬레이터에서 앱이 다운되면 하위 폴더 (고유 ID 포함)가 다음에 추가됩니다.
~ / Library / Logs / CoreSimulator
그 안에서 stderr.log
및 system.log
.
에뮬레이터 자체 가 충돌하면 하위 폴더가 다음에 추가됩니다.
~ / Library / Logs / DiagnosticReports
이 경로를 혼동하지 마십시오.
/ 라이브러리 / 로그
( ~
시작시 부족 ) Mac에 대한 다른 보고서가 있습니다.
답변
특별한 경우에 저에게 도움이 된 것이 있습니다 … 내 앱이 종료 될 때 SIGKILL과 충돌했습니다. 몇 초 동안 main.m에서 예외가 발생하면 앱이 종료되므로 역 추적을 얻을 기회가 없습니다.
나는“시뮬레이터가 크래시 로그를 어디에 저장 하는가”에 대해 많은 검색을했지만 답을 찾지 못했습니다. 그러나 다음 트릭이 매우 편리 해졌고 즉시 충돌 로그를 가져올 수있었습니다.
기본적으로 /Applications/Utilities/CrashReporterPrefs.app을 열고 설정을 “개발자”로 변경합니다. 이렇게하면 앱이 충돌 한 후 CrashReporter가 충돌 로그와 함께 팝업을 표시합니다.
Apple의이 문서에있는 “iOS 시뮬레이터 콘솔 및 충돌 로그보기”섹션에서이를 찾았습니다.
http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/125-Using_iOS_Simulator/ios_simulator_application. HTML
답변
이것은 훨씬 더 신뢰할 수 있습니다. 몇 단계만으로 소스 라인 번호와 메소드 이름을 찾을 수있었습니다.
- .app 및 .dSYM 파일이있는 디렉토리로 cd
- /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gdb/gdb-arm-apple-darwin MyApp.app/MyApp을 실행합니다.
- asm-demangle 인쇄 설정
- 기호 파일 이름 인쇄 설정
- p / a 0 × 00015c64-> “콘솔”앱에서 충돌 로그를 열거 나 .crash 파일을 두 번 클릭하여 얻은 주소입니다.
답변
충돌 충돌 로그는 ~ / Library / Logs / CrashReporter 아래에 표시됩니다.
- iPhone 시뮬레이터 프로그램이 충돌하면 (시뮬레이터 내에서 실행중인 iPhone 앱이 아님) iPhoneSimulator에 대한 항목이 있습니다.
- 시뮬레이터 내의 iPhone 앱이 충돌하면 앱의 표시 이름과 함께 충돌 로그가 나타납니다.
Xcode가 연결된 장치에서 충돌 로그를 가져 오면 ~ / Library / Logs / CrashReporter / MobileDevice의 하위 폴더에 저장됩니다.
답변
저에게는 디버거 감시 창에 추가 한 표현이었습니다. 중단 점이 적중되었을 때 잘못된 표현으로 인해 XCode가 세그 폴트되었습니다.