Hatena::ブログ(Diary)

ロロロッサ Twitter

2011-10-29

proguardで難読化されたスタックトレースをリトレースする

先日デベロッパーコンソールにエラーが報告されていた。スタックトレースはproguardによって難読化されているので、リトレースしてみた。少し引っかかった点もあったのでメモ。

トレースに必要なもの

mapping.txtは難読化する度に書き換わるので、エラーが発生したバージョンをビルドした際に生成されたものを使用する。あとはスタックトレースコピペして、テキストファイルに適当な名前で保存。


トレース方法

Android SDKに含まれているretrace.shを実行してリトレースを行う。

場所は以下(環境によって読み替えてください)。

~/android-sdk-mac_x86/tools/proguard/bin/retrace.sh

以下の書式でリトレースすることができる。

sh retrace.sh -verbose mapping.txt stacktrace.txt 

ただし、僕の環境(MacBook Air/lion 10.7.2)だとretrace.shのカレントディレクトリで実行すると以下のエラーが発生した。

Unable to access jarfile ./lib/retrace.jar

エラーを避けるにはproguardディレクトリ配下で以下のように実行すればよい。

sh ./bin/retrace.sh -verbose mapping.txt stacktrace.txt

この不具合については以下を参照。

http://stackoverflow.com/questions/6841272/unable-to-access-jarfile-lib-proguardgui-jar

リンク元
Connection: close