2011-06-07 7 views
6

He estado usando el eclipse incorporado en la herramienta proguard para obstruir el código, que funciona bien. Sin embargo, cuando intento volver sobre la traza de la pila del código ofuscado, el rastreo no genera una pila stack no ofuscada.El retroceso de Proguard no mapea la traza de la pila a la fuente real

He comprobado el mapping.txt para asegurarme de que estoy usando el correcto.

aquí es mi Seguimiento de la pila

ERROR/AndroidRuntime(19398): 
FATAL EXCEPTION: Thread-35 
ERROR/AndroidRuntime(19398): java.lang.NullPointerException 
ERROR/AndroidRuntime(19398):  at android.graphics.Canvas.throwIfRecycled(Canvas.java:954) 
ERROR/AndroidRuntime(19398):  at android.graphics.Canvas.drawBitmap(Canvas.java:980) 
ERROR/AndroidRuntime(19398):  at com.excelectronic.b.aa.a(ProGuard:535) 
ERROR/AndroidRuntime(19398):  at com.excelectronic.g.f.a(ProGuard:220) 
ERROR/AndroidRuntime(19398):  at com.excelectronic.game.GameView.a(ProGuard:198) 
ERROR/AndroidRuntime(19398):  at com.excelectronic.game.GameView.onDraw(ProGuard:98) 
ERROR/AndroidRuntime(19398):  at com.excelectronic.game.ac.run(ProGuard:121) 

y usando el comando

retrace.bat -verbose mapping.txt obfuscated_trace.txt 

Respuesta

15

herramienta ReTrace de ProGuard por defecto espera que la pila de traza para ser un buen formato, la forma en que se imprimen mediante java. Esto significa que espera saltos de línea en los lugares adecuados y no hay prefijos como "ERROR/AndroidRuntime (19398)".

Alternativamente, puede modificar la expresión regular que ReTrace usa para analizar los rastreos de la pila.

+0

¿Cómo puedo pasar el patrón de expr normal? ¿Cuál es la opción? – Gopinath

+0

@Gopinath Cfr. el manual. –

1

Utilice traceview para extraer la traza original de pila de Java antes de utilizar ReTrace.

+0

¿Cómo lo haces exactamente? –

+0

Lo siento, no puedo hacer que funcione ahora. Y la vista de seguimiento independiente ya no está disponible. –

+0

Aquí hay un Regex simple: '. * (: \ U0020)' –

Cuestiones relacionadas