【问题标题】:What is the difference between Binary Instrumentation and ByteCode instrumentation?二进制检测和字节码检测有什么区别?
【发布时间】:2017-09-05 05:03:50
【问题描述】:

所以我正在阅读这篇名为“动态程序分析技术和工具调查”的论文,其中列出了不同的插桩技术。

所以根据那篇论文,我们有源代码、二进制和字节码检测。源代码一很清楚,但我看不出字节码和二进制插桩的区别:

"二进制插桩通过修改或添加插桩代码 重写编译代码”

和:

字节码检测在编译后的代码中执行跟踪。 [...] 静态 [字节码] 检测涉及更改已编译的代码 执行前离线

有这个帖子:What are the differences between the three methods of code coverage analysis? 谈到“on-the-fly”检测,它非常接近“动态字节码检测”和“动态二进制检测”。

动态二进制检测(作为即时编译器实现)在程序加载到内存后执行

动态 [字节码] 检测在应用程序已经运行时起作用

如果有人能解释一下二进制和字节码检测之间的区别,那就太好了。

非常感谢。

蒂博

【问题讨论】:

    标签: binary bytecode instrumentation


    【解决方案1】:

    恕我直言...

    “二进制插桩通过修改或重写编译代码来添加插桩代码”

    编译代码是由字节码组成的,所以我看到的也是一样的。二进制检测可能只是意味着 binaries 被检测。

    【讨论】:

    • 哦,确实,直到现在我都认为字节码和二进制文件是一回事。来自:stackoverflow.com/questions/4841083/… Java 字节码是一种二进制数据格式,包括 Java 虚拟机的加载信息和执行指令。从这个意义上说,Java 字节码是一种特殊的二进制代码。当您使用术语“二进制代码”来表示真实处理器架构(如 IA-32 或 Sparc)的机器指令时,情况就不同了。从这个意义上说,Java 字节码不是二进制代码。它不是特定于处理器的。
    • 非常感谢您的回答,我明白了。
    猜你喜欢
    • 2020-05-20
    • 1970-01-01
    • 2016-02-14
    • 2017-07-26
    • 2015-10-23
    • 1970-01-01
    • 2016-10-19
    • 2012-03-17
    • 2020-04-12
    相关资源
    最近更新 更多