Smali .local 格式
Smali .local format
我用baksmali
反汇编了一个Android应用,研究了生成的smali代码。 类 之一包含以下行:
.local v1, "future":Lcom/android/volley/toolbox/RequestFuture;, "Lcom/android/volley/toolbox/RequestFuture<Ljava/lang/Void;>;"
我不太清楚这行代码的意思。
v1
是否包含一个RequestFuture<Void>
,对应原代码中的变量future
? (即原始代码是:RequestFuture<Void> future;
?)还是有所不同?
是的,这是可以选择存在的调试信息的一部分。它在调试时使用,例如评估局部变量的值。
您提到的 .local 就是您所说的意思。 v1 寄存器保存了来自原始源的 future
变量的值,它的类型是 RequestFuture<Void>
.local 指令等效于该方法的调试信息中的 DBG_START_LOCAL
或 DBG_START_LOCAL_EXTENDED
指令,如 dex format
所定义
我用baksmali
反汇编了一个Android应用,研究了生成的smali代码。 类 之一包含以下行:
.local v1, "future":Lcom/android/volley/toolbox/RequestFuture;, "Lcom/android/volley/toolbox/RequestFuture<Ljava/lang/Void;>;"
我不太清楚这行代码的意思。
v1
是否包含一个RequestFuture<Void>
,对应原代码中的变量future
? (即原始代码是:RequestFuture<Void> future;
?)还是有所不同?
是的,这是可以选择存在的调试信息的一部分。它在调试时使用,例如评估局部变量的值。
您提到的 .local 就是您所说的意思。 v1 寄存器保存了来自原始源的 future
变量的值,它的类型是 RequestFuture<Void>
.local 指令等效于该方法的调试信息中的 DBG_START_LOCAL
或 DBG_START_LOCAL_EXTENDED
指令,如 dex format