2011-04-29 2 views
2

3.2.6에서 MT 4.0.1로 업데이트했습니다. 이제 예외 보고서에 장치에서 실행할 때 스택 추적이 더 이상 포함되지 않는 것 같습니다.장치에서 실행되는 MonoTouch 4에서 예외 StackTrace가 null 인 이유는 무엇입니까?

예외 보고서를 파일에 저장하는 데 사용하는 AppDomain.CurrentDomain.UnhandledException에 예외 처리기가 연결되어 있습니다. 디버그 & 릴리스 모드의 시뮬레이터에서 UnhandledExceptionEventArgs.ExceptionObject.StackTrace가 설정됩니다. 두 장치 모두 디버그 & 해제 모드는 속성이 null입니다.

프로젝트 옵션의 "컴파일러"섹션에서 "디버깅 정보 출력"을 검사 해 보았습니다. 나는 "--nosymbolstrip"을 MT 빌드 args에 추가하려고 시도했다. 나는 LLVM을 사용 가능하게하고 사용 불가능하게했다.

아이디어가 있으십니까? 우리가받는 예외 보고서에 필요한 진단 정보가 포함되어 있다고 확신 할 때까지는 앱 스토어에서 업데이트 할 수 없습니다.

답변

1

ExceptionObject.ToString()은 어떤 정보를 제공합니까? 오류 메시지 및 스택 추적을 포함해야합니다. 나는 이것이 나를 위해 일해 왔다는 것을 알고있다. b/c 나는 최근 Novell에 버그를 제출하기 위해 그것을 사용했다.

또한 AppDomain.UnhandledException은 오프 스레드 예외에 사용하기 때문에 static void Main()에 앱 시작시 try-catch를 래핑하려고 할 수 있습니다.

+0

Exception.ToString()에는 시뮬레이터의 전체 스택 추적이 포함되지만 해당 정보는 장치의 ToString()에서 누락됩니다. 물론 예외 유형, 오류 메시지 및 대상 사이트는 유용한 데이터이지만 스택 추적은 가장 중요하고 불행하게도 누락되었습니다. – rodney

+0

'static void Main()'주위에 try-catch를 넣고 거기서 본다면이 정보는 여전히 누락 되었습니까? – jonathanpeppers

0

MonoTouch 4.0.4.1에서 수정 된 것처럼 보이지만, 업데이트 설명에서 언급 한 내용을 보지 못했습니다. Xamarin의 누군가가 그것을 의도적으로 고쳤다 고 확신 할 수 있습니다.

레코드의 경우 일반적으로 스택 추적은 예외와 관련된 장치뿐만 아니라 장치에서 손상되었습니다. 이전에 new StackTrace()을 수행 한 경우 해당 프레임이 불완전 할 수 있습니다.

관련 문제