【问题标题】:Logging the Behavior of a Binary?记录二进制文件的行为?
【发布时间】:2011-09-27 04:43:56
【问题描述】:

我想弄清楚当命令行标志被传递给 Windows 上的程序时,哪些指令被执行不同,我有已编译(和优化)的二进制文件,没有调试符号或任何类似的东西。我知道区别不会超过几条指令。

我将如何解决这个问题?是否有任何技术可以准确记录程序在特定时间段内执行的指令?
(请注意,这涉及任何系统调用,只是因为命令行标志而在循环中设置了一个标志。)

【问题讨论】:

    标签: debugging logging executable instrumentation instructions


    【解决方案1】:

    您可以使用 AMD 的 CodeAnalyst 来执行此操作,使用基于指令的分析方法。它还有一个 API,你可以在你的应用程序中触发事件,这样你就可以监控特定区域。您也可以使用反汇编程序,据我了解,您使用“指令”一词来表示高级代码操作和低级机器代码(执行无法更改,只有编译器发出的代码可以更改执行高级操作)。

    【讨论】:

    • 谢谢!这看起来是一个非常棒的工具。但是,它通常不会捕获某些内容,因为大多数指令甚至都没有被采样。关于如何解决这个问题的任何想法(如果可能的话)?
    • @Mehrdad:那么您可以尝试其他采样方法之一,例如基于时间的采样方法。 (应该有一个示例教程)。
    猜你喜欢
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 2017-09-01
    相关资源
    最近更新 更多