prosource

iPhone Simulator에서 생성된 충돌 로그?

probook 2023. 6. 2. 20:37
반응형

iPhone Simulator에서 생성된 충돌 로그?

iPhone Simulator에서 생성된 충돌 로그가 있습니까?

시뮬레이터가 많이 충돌하지만 콘솔에 흔적을 남기지 않습니다...충돌 로그가 유용할 것입니다.

콘솔에 다음과 같은 정보가 표시됩니다.NSLog()시뮬레이터에서 실행 중인 앱의 출력.충돌 로그가 파일에 저장됩니다.

나는 내 집 디렉토리 아래에서 몇 개를 찾았습니다.

~/Library/Logs/DiagnosticReports/

확장자가 파일다같습다니음과는자장확▁a다▁they▁of▁extension입니다..crash

제가 아직 알아내지 못한 것은 디버거가 그것을 잡더라도 그것들이 생성하도록 하는 방법입니다.EXC_BAD_ACCESS신호.


갱신하다

10는 는현(OSX 10.11.6), .crash 로그입니다.~/Library/Logs/DiagnosticReports에뮬레이터 자체가 충돌하는 경우입니다. 충돌(에뮬레이터 장치는 여전히 정상적으로 실행 중)에 대한 로그는 다음과 같습니다.

~/라이브러리/로그/코어 시뮬레이터

충돌할 때마다 고유 ID를 가진 하위 폴더가 있습니다.최근 충돌이 첫 번째 하위 폴더가 되도록 날짜별로 정렬합니다.그 안에서, 먼저 살펴보세요.stderr.log그리고.system.log.

또한 바로 아래에 있습니다.CoreSimulator, 보기CoreSimulator.log그리고.Simulator.log.

유틸리티에 있는 OS X 콘솔 앱에서 이것을 볼 수 있다고 확신합니다.하지만 제가 틀렸다면, 제가 이걸 삭제할 수 있도록 저에게 투표해 주세요.


업데이트:

특히 (OSX 10.11.6 기준),

앱이 에뮬레이터에서 충돌하면 하위 폴더(ID가 고유함)가 다음에 추가됩니다.

~/라이브러리/로그/코어 시뮬레이터

그 안에서, 조사하는 것으로 시작합니다.stderr.log그리고.system.log.

에뮬레이터 자체가 충돌하면 하위 폴더가 다음에 추가됩니다.

~/라이브러리/로그/진단 보고서

이 경로를 다음과 혼동하지 마십시오.

/라이브러리/로그

)로 표시됩니다.~시작 시), 즉 Mac에 대한 보고서가 서로 다릅니다.

여기 특별한 경우에 제게 효과가 있었던 것이 있습니다.내 앱이 종료되면서 SIGKILL과 충돌했습니다.몇 초 동안 main.m에 예외가 표시되면 앱이 종료됩니다. 따라서 백 트레이스를 얻을 기회가 없습니다.

저는 "시뮬레이터가 충돌 로그를 어디에 저장하는가"에 대해 많은 검색을 했지만 답을 찾지 못했습니다.하지만, 다음과 같은 요령이 꽤 유용하게 쓰였고, 저는 충돌 로그를 즉시 파악할 수 있었습니다.

기본적으로 /Applications/Utilities/CrashReporterPrefs.app을 열고 설정을 "Developer"로 변경합니다.이렇게 하면 앱이 충돌한 후 CrashReporter에 충돌 로그가 있는 팝업이 표시됩니다.

Apple: http://developer.apple.com/library/ios/ #documentation/Xcode/Conceptual/ios_development_workflow/125-Using_iOS_Simulator/ios_simulator_application.html의 "iOS 시뮬레이터 콘솔 및 충돌 로그 보기" 섹션에서 이를 발견했습니다.

충돌 충돌 로그는 ~/Library/Logs/CrashReporter 아래에 나타납니다.

  • iPhone 시뮬레이터 프로그램이 충돌하는 경우(시뮬레이터 내에서 실행되는 iPhone 앱이 아님) iPhone Simulator에 대한 항목이 있습니다.
  • 시뮬레이터 내 아이폰 앱이 충돌하면 앱의 표시 이름과 함께 충돌 로그가 나타납니다.

Xcode는 연결된 장치에서 충돌 로그를 가져오면 ~/Library/Logs/CrashReporter/MobileDevice의 하위 폴더에 저장합니다.

이것이 훨씬 더 신뢰할 수 있습니다.몇 단계만 거치면 소스 라인 번호와 메서드 이름을 찾을 수 있었습니다.

  1. .app & .dSYM 파일이 있는 dir에 CD를 보냅니다.
  2. /developer/Platforms/iPhoneOS.platform/developer/usr/libexec/gdb/gdb-arm-app-darwin MyApp.app/MyApp
  3. 인쇄를 sm-demangle로 설정합니다.
  4. 인쇄 기호 설정
  5. p/a 0×00015c64 -> 주소는 "콘솔" 앱에서 충돌 로그를 열거나 .crash 파일을 두 번 클릭하여 얻었습니다.

저에게는 디버거 워치 창에 추가한 표현이었습니다.중단점이 적중될 때 잘못된 표현식으로 인해 XCode가 segfault로 전환되었습니다.

다음과 같은 관련 답변을 참조할 수도 있습니다. https://stackoverflow.com/a/14984297/679240

위의 답변 중 "Big Sur" OS 버전에서 작동하지 않았습니다.로그를 찾을 수 있는 유일한 방법은 "콘솔" 앱(애플리케이션/유틸리티/콘솔)을 통해서였습니다.

언급URL : https://stackoverflow.com/questions/1864479/crash-logs-generated-by-iphone-simulator

반응형