2011-01-21 2 views
2

GWT 앱을 배포하고 클라이언트가 예외를 throw 할 때 서버에 로그 항목을 가져올 수 있도록 예외 리포터를 설정했습니다. 보통 이것은 매우 도움이되며 나는이 정보로 많은 버그를 죽였습니다. 그러나,이 스택 트레이스는 나를 난처한 상황에 빠진 :이 예외의 출처를 추측 할 수 있습니까?

com.allen_sauer.gwt.log.server.ServerLogImplJDK14 log: Uncaught Exception: 
com.google.gwt.event.shared.UmbrellaException: One or more exceptions caught, see full set in UmbrellaException#getCauses 
at Unknown.EJb(StackTraceCreator.java:147) 
at Unknown.SAb(StackTraceCreator.java:387) 
at Unknown.eHb(Throwable.java:46) 
at Unknown.KXb(com.google.gwt.dev.jjs.ast.JProgram:0) 
at Unknown.AM(SimpleEventBus.java:214) 
at Unknown.EM(SimpleEventBus.java:103) 
at Unknown.bXb(HandlerManager.java:96) 
at Unknown.ux(Widget.java:107) 
at Unknown.USb(DomEvent.java:116) 
at Unknown.xx(UIObject.java:529) 
at Unknown.Mx(Widget.java:141) 
at Unknown.ixc(DOM.java:1264) 
at Unknown.anonymous(DOMImplStandard.java:187) 
at Unknown.HIb(Impl.java:214) 
at Unknown.anonymous(Impl.java:57) 
at .(:0) 
at ==================Caused by==================.(:0) 
at Unknown.EJb(StackTraceCreator.java:147) 
at Unknown.SAb(StackTraceCreator.java:387) 
at Unknown.y0c(Throwable.java:46) 
at Unknown.KZc(Number.java:192) 
at Unknown.Y$c(Float.java:60) 
at Unknown.wV(TextBoxBase.java:106) 
at Unknown.yTb(ClickEvent.java:53) 
at Unknown.AM(SimpleEventBus.java:204) 
at Unknown.EM(SimpleEventBus.java:103) 
at Unknown.bXb(HandlerManager.java:96) 
at Unknown.ux(Widget.java:107) 
at Unknown.USb(DomEvent.java:116) 
at Unknown.xx(UIObject.java:529) 
at Unknown.Mx(Widget.java:141) 
at Unknown.ixc(DOM.java:1264) 
at Unknown.anonymous(DOMImplStandard.java:187) 
at Unknown.HIb(Impl.java:214) 
at Unknown.anonymous(Impl.java:57) 

이는 GWT-로그의 일부입니다 StackTraceCreator 제외한 모든 GWT 파일입니다, 나에게 이러한 예외를보고하는 프로그램. 나는이 예외를 개발 기계에서 본 적이 없으며 복제 단계의 시작조차 갖고 있지 않습니다.

어떻게 추적 할 수 있습니까?

+1

가 음, 어디 .... 추측하는 것은 매우 신뢰할 수있는 디버깅 방법은 아닙니다. –

+0

나는 (분명히) 난독 화 된 GWT 클래스/등의 작동 방법을 모른다. 하지만 빌드 과정에서 빌드 번호와 함께 매핑 (난해한 실제 이름)을 저장하므로 우리가 얻을 수있는 로그를 항상 추적 할 수 있습니다 (추적을 배치 한 버전에서 가져온 경우에도 마찬가지입니다). 전에). – SyntaxT3rr0r

+0

글쎄, 파일 이름과 줄 번호로, 우리는 여전히 많이 볼 수 있습니다. 나는 Number.java에서 예외를 일으키는 것이 무엇인지 알고 싶어한다. –

답변

2

GWT 앱은 기본적으로 obfuscation turned on으로 컴파일됩니다. GWT-로그이 문제를 보고서에 설명 된대로

그래서 당신은 난독 화를 해제하거나 스택 추적을 다시 상징을 시도 할 수 있습니다 : 이것은 아마도 이러한 옵션에 가장 함께 사용되어야한다 http://code.google.com/p/gwt-log/issues/detail?id=38

당신의 하며 .gwt.xml 파일 (I, 당신은 이미 한 가정) :

<set-property name="compiler.emulatedStack" value="true" /> 
<set-configuration-property name="compiler.emulatedStack.recordLineNumbers" 
    value="true"/> 
<set-configuration-property name="compiler.emulatedStack.recordFileNames" 
    value="true"/> 

(http://code.google.com/p/gwt-log/wiki/GettingStarted 참조)

+0

라인 번호와 파일 이름이 스택 추적에 이미 있습니다 ~ –

+0

@ Riley : 좋아, 나는 당신이 "개발 기계에서이 예외를 본 적이 없다"고 말했기 때문에 당신이 흔적 속에서 "Unknown.XY"부분에 대해 궁금해한다고 생각했습니다. –

관련 문제