Please take a look at this questionsmaliコードの構文で ".line"とは何を意味しますか? (Androidの-Smaliコード)
逆コンパイルsmaliコードが.line 3
または.line 7
のようなものが含まれています。
.line
さんは何をすべきか理解できませんので、使い方を詳しく教えてください。
Please take a look at this questionsmaliコードの構文で ".line"とは何を意味しますか? (Androidの-Smaliコード)
逆コンパイルsmaliコードが.line 3
または.line 7
のようなものが含まれています。
.line
さんは何をすべきか理解できませんので、使い方を詳しく教えてください。
.line n
マーカーは、デバッグおよびスタックトレースに使用されます。例外がキャッチされなかった場合、またはスタックトレースを入力する必要がある場合、行番号は.line
ステートメントから取得されます。これが欠落していた場合、スタックトレースに行番号がありません。
smali言語のほとんどすべてが、dalvikバイトコードまたはデックス形式の直接のアナログを持っています。
特に.lineディレクティブは、http://s.android.com/tech/dalvik/dex-format.htmlで指定されているように、debug_info_itemが定義するステートマシンによって発行される位置エントリに対応します。
smaliコードを再コンパイルするときに、マーカーを削除できますか? –
@ user2525702すでに述べた通り、はい、デバッグは難しくなります。 – hexafraction
@ user2525702 '.line'はsmaliの次の部分に変換される元のJavaソースコードの行です。あなたがそれらを削除すると、 'com.foo.bar.Bar(Bar.java:85) 'のような素晴らしい例外スタックトレースが得られないでしょう。 – zapl