2013-08-16 10 views

risposta

10

.line n I marker sono utilizzati per il debug e gli stacktraces. Quando un'eccezione viene ignorata o lo stacktrace deve essere compilato, il numero di riga viene preso dall'istruzione .line. Se questo mancasse, quindi gli stacktraces mancherebbero numeri di linea.

+0

posso rimuovere .line marcatori quando voglio ricompilare i codici smali? –

+0

@ user2525702 Come già detto, sì, ma il debug sarà più difficile. – hexafraction

+1

@ user2525702 '.line' è la linea nel codice sorgente Java originale che si traduce nella seguente parte di smali. Se li rimuovi, probabilmente non si ottengono stacktraces Exception come 'a com.foo.bar.Bar (Bar.java:85)' – zapl

0

Quasi tutto nel linguaggio smali ha un'analogia diretta nel formato bytecode o dex dalvik.

La direttiva .linea in particolare corrisponde alle voci di posizione emesse dalla macchina a stati definita da debug_info_item, come specificato in http://s.android.com/tech/dalvik/dex-format.html.

Problemi correlati