stack trace - Trouble getting GWT function names deobfuscated -
we having real hard time getting our stack trace deobfuscation work correctly.
whenever have exception, our stack trace looks this:
2013-05-13t20:43:36.990952+00:00 stg-cardit1 hermione: permutationstrongname: 4212e9f1a585f0854fef253cba77bd18 2013-05-13t20:43:36.998257+00:00 stg-cardit1 hermione: error:unhandled client exception[0]java.lang.runtimeexception: crash 2013-05-13t20:43:36.998386+00:00 stg-cardit1 hermione: caused by: 2013-05-13t20:43:36.998479+00:00 stg-cardit1 hermione: exception: crash(java.lang.runtimeexception) 2013-05-13t20:43:36.998567+00:00 stg-cardit1 hermione: unknown.pp(stacktracecreator.java:174) 2013-05-13t20:43:36.998653+00:00 stg-cardit1 hermione: unknown.qd(stacktracecreator.java:508) 2013-05-13t20:43:36.998739+00:00 stg-cardit1 hermione: unknown.td(exception.java:29) 2013-05-13t20:43:36.998824+00:00 stg-cardit1 hermione: unknown.wo(runtimeexception.java:29) 2013-05-13t20:43:36.998910+00:00 stg-cardit1 hermione: unknown.mid(cardserviceimpl.java:207) 2013-05-13t20:43:36.998996+00:00 stg-cardit1 hermione: unknown.u4c(masteractivity.java:404) 2013-05-13t20:43:36.999136+00:00 stg-cardit1 hermione: unknown.m5c(masteractivity.java:368) 2013-05-13t20:43:36.999241+00:00 stg-cardit1 hermione: unknown.p5c(masteractivity.java:367) 2013-05-13t20:43:36.999332+00:00 stg-cardit1 hermione: unknown.xjd(flickrserviceimpl.java:79) 2013-05-13t20:43:36.999418+00:00 stg-cardit1 hermione: unknown.dkd(flickrserviceimpl.java:92) 2013-05-13t20:43:36.999503+00:00 stg-cardit1 hermione: unknown.akd(flickrserviceimpl.java:49) 2013-05-13t20:43:36.999588+00:00 stg-cardit1 hermione: unknown.rbd(sevoglerequestbuilder.java:29) 2013-05-13t20:43:36.999673+00:00 stg-cardit1 hermione: unknown.ue(request.java:258) 2013-05-13t20:43:36.999797+00:00 stg-cardit1 hermione: unknown.gf(requestbuilder.java:412) 2013-05-13t20:43:36.999893+00:00 stg-cardit1 hermione: unknown.anonymous(xmlhttprequest.java:351) 2013-05-13t20:43:36.999980+00:00 stg-cardit1 hermione: unknown.hp(impl.java:189) 2013-05-13t20:43:37.000065+00:00 stg-cardit1 hermione: unknown.kp(impl.java:242) 2013-05-13t20:43:37.000150+00:00 stg-cardit1 hermione: unknown.anonymous(impl.java:70)
i have updated our gwt.xml file have following lines:
<!-- stack track info --> <set-property name="compiler.stackmode" value="emulated" /> <set-property name="compiler.usesourcemaps" value="true" /> <set-configuration-property name="compiler.emulatedstack.recordlinenumbers" value="true" /> <set-configuration-property name="compiler.emulatedstack.recordfilenames" value="true" />
the first problem ran gwtc creating symbolmap file name "null_symbolmap0.json"
we hand coded our ant build script have put permuation name file name
web-inf/symbolmaps/${permutation_name}_sourcemap0.json
i tested with
web-inf/symbolmaps/${permutation_name}.sourcemap0.json
and inside .war file.
when go call this, use following commands
getservletcontext().getrealpath("/"); stacktracedeobfuscator deob = new stacktracedeobfuscator(getservletcontext().getrealpath("/web-inf/symbolmaps")); stacktraceelement[] elements = deob.deobfuscatestacktrace(jselements.toarray(new stacktraceelement[0]), gwtpermutationstrongname);
where gwtpermutationstrongname identical name in file.
the json in symbol map looks this:
{ "version":3, "file":"sourcemap0", "linecount":8439, "mappings":"a;aawca,aaaa,caaa,caaa......aa,iaaa;", "sources":["com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/seedutil.java","com/google/gwt/emul/java/lang/object.java",...,"com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/classliteralholder.java"], "names":[] }
looking @ sourcemap, appears "names" field empty. i'm not sure that, since i've got flags set above.
the build happening in ant, following
<property name="gwt.args" value="-localworkers 8 -extra war/web-inf/classes/" /> <java failonerror="true" fork="true" classname="com.google.gwt.dev.compiler"> <classpath> <pathelement location="war/web-inf/classes/*.jar" /> <pathelement location="war/web-inf/lib/*.jar" /> <pathelement location="src" /> <pathelement location="gen" /> <path refid="project.class.path" /> <pathelement location="${gwt.sdk}/validation-api-1.0.0.ga.jar" /> <pathelement location="${gwt.sdk}/validation-api-1.0.0.ga-sources.jar" /> </classpath> <!-- add jvmarg -xss16m or similar if see stackoverflowerror --> <jvmarg value="-xmx2524m" /> <!-- <arg line="-compilereport" /> <arg line="-xsoycdetailed" /> --> <arg line="-war" /> <arg value="war" /> <!-- additional arguments -style pretty or -loglevel debug --> <arg line="${gwt.args}" /> <arg value="com.sevogle.hermione.hermione" /> </java>
i've seen comments if have closure compiler enable, stack trace functionality doesn't work, unless it's enable default, don't have enabled.
https://code.google.com/p/google-web-toolkit/issues/detail?id=7803
you can see 2 files here: https://www.dropbox.com/sh/h1bwe9e8jr2040x/rvledqrvhg
thanks in advance time.
adam
try use https://code.google.com/p/gwt-log/ simple configure.
Comments
Post a Comment