하나의 크래시 로그에서만이 문제를 발견했기 때문에이 문제가 발생하는 이유를 알 수 없습니다. 기본적으로 고객으로부터의 오류 로그를 나타 냈고, 모두 체크하고 기호화했습니다.을 제외하고 은 한 프레임을 제외하고는 기호화되어 있지 않습니다. 아래 스 니펫이 있습니다 (프레임 9가 문제입니다) :크래시 로그에 하나의 심볼이없는 프레임이 있습니다.
6 libc++abi.dylib 0x00001114 std::terminate() + 20
7 libc++abi.dylib 0x00002513 __cxa_throw + 123
8 libstdc++.6.dylib 0x00005ba9 std::__throw_out_of_range(char const*) + 153
9 MyApp 0x002ff343 0x0000c000 + 3093315
10 MyApp 0x002ec02b -[ChildViewController tableView:cellForRowAtIndexPath:] (ChildViewController.mm:42)
11 MyApp 0x0042d725 -[ViewControllerRoot tableView:cellForRowAtIndexPath:] (ViewControllerRoot.m:198)
12 UIKit 0x0004e54d -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 413
나는이 라인을 기호화하여 얻으려는 노력을 다했지만 아무 소용이 없었습니다. 나는 atos를 수동으로 실행했으며, symbolicatecrash.pl (자세한 내용은 무슨 일이 일어나는지 보았다). dSYM 및 .app 파일은 정상적으로 발견되며 크래시 로그의 이진 이미지 섹션에있는 응용 프로그램의 UUID와 일치합니다. 내가 가장 안정적인 Xcode, 4.6에있어. 다른 팀 구성원도 동일한 결과를 시도했습니다.
여기에 문제가 있습니까? 아니면 Objective-C의 동적 특성에 문제가 있습니까? 나는 이것이 이전의 것이라고 믿지만, MyApp의 다른 프레임/심볼이 상징적이라는 사실은 나를 혼란스럽게합니다!
업데이트 : 명확히해야, 그것은 누락 된 프레임이 아주 쉽게 추론하지만, 모든 잠재적으로 out_of_range
오류를 던질 수있는이 시점에서 많은 다른 클래스에 여러 통화가 될 수 있다는 것처럼 보일 수 있습니다. 따라서이 누락 된 프레임은 디버깅을 훨씬 더 어렵게 만듭니다.
아쉽게도 스택의이 프레임 내에 정적 라이브러리가 사용되지 않습니다. – WDUK
atos를 사용하여 수동으로 기호를 지정할 때 정확한 주소가 atos에 전달되도록 여기에 게시 된 규칙을 따르셨습니까? http://stackoverflow.com/questions/13574933/ios-crash-reports-atos-not-working-as-expected/13576028#13576028 – Kerni
예, 출력은'atos -arch armv7 -o MyApp.app에서 가져옵니다. dSYM/Contents/Resources/DWARF/MyApp 0x002F4343'은 (MyApp에서)'0x002f4343 '입니다. 상징적 인 정보가 없음 ... – WDUK