【发布时间】:2013-11-19 03:27:04
【问题描述】:
嗨,我正在运行一个应用程序,其中 Dex 文件指令具有地址或 PC,例如 0x000253DC,但是当我获得实时指令跟踪时,PC 或地址类似于 41ed7748
它们的范围完全不同。
我只是想知道这是正常的还是我弄错了痕迹?
谢谢。
【问题讨论】:
标签: java android bytecode dalvik
嗨,我正在运行一个应用程序,其中 Dex 文件指令具有地址或 PC,例如 0x000253DC,但是当我获得实时指令跟踪时,PC 或地址类似于 41ed7748
它们的范围完全不同。
我只是想知道这是正常的还是我弄错了痕迹?
谢谢。
【问题讨论】:
标签: java android bytecode dalvik
Android 上原生崩溃堆栈跟踪中的地址显示为库偏移量,因此高位将被清零。由于库位置可能会随着运行而改变,地址的高位部分不包含在堆栈跟踪中。
参见例如this question.
(这些都与 Dalvik 字节码无关,所以我对 DEX 文件引用有点困惑。希望我没有完全偏离基础。)
【讨论】:
/proc/<pid>/maps 以找出 DEX 文件映射的基地址,然后减去它以获得 DEX 文件的偏移量。类似于您对本地 PC 所做的事情;见stackoverflow.com/questions/20001153/…