当混淆后的代码输出一个堆栈信息时,方法名是不可识别的,这使得调试变得很困难,甚至是不可能的。
幸运的是,当ProGuard运行时,它都会输出一个<project_root>/bin/proguard/mapping.txt文件,而这个文件中包含了原始的类,方法和字段名被映射成的混淆名字。
retrace.bat脚本(Window)或retrace.sh脚本(Linux,Mac OS X)可以将一个被混淆过的堆栈跟踪信息还原成一个可读的信息。它位于<sdk_root>/tools/proguard文件夹中。
执行retrace工具的语法如下:
<1>For Windows OS
retrace.bat [-verbose] <mapping_file> [<stacktrace_file>]
<2>For Mac OS
retrace.sh [-verbose] <mapping_file> [<stacktrace_file>]
例如:
retrace.bat -verbose mapping.txt o