【问题标题】:Static detection of unconditional jump targets in dalvik byte codedalvik字节码中无条件跳转目标的静态检测
【发布时间】:2013-10-25 08:06:55
【问题描述】:

在 x86 二进制文件中,我们有时会发现像 jmp %eax 这样的语句,其中 jmp 目标 eax 是在运行时计算的。这增加了构建静态控制流图的复杂性。我的问题是 dalvik 字节码中是否也有类似的指令?我的意思是是否有任何分支目标只能在运行时计算?

我听说在 dalvik 中这是确定性的,这意味着分支目标不是在运行时确定的,而是编译器存储信息。

查看您的反馈,如果可能,请提供参考。

【问题讨论】:

标签: java android compiler-construction dalvik vm-implementation


【解决方案1】:

不,Dalivk 字节码只允许固定跳转。没有等效的跳转寄存器;所有的跳跃都是精确的偏移。我没有给你的权威参考,但我昨天碰巧读到了this presentation,其中明确提到了这个限制。

上面链接的演示文稿还声称,Dalvik 对本机代码执行有一些支持,我假设它允许目标架构支持的任何类型的分支。但这与字节码关系不大。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    • 2023-03-23
    • 2012-10-18
    • 2011-02-06
    • 1970-01-01
    相关资源
    最近更新 更多