debugging - 记录二进制文件的行为?

标签 debugging logging executable instrumentation instructions

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

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

最佳答案

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

关于debugging - 记录二进制文件的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6555731/

相关文章:

java - 如何获取占用 100% cpu 的正在运行的 java 程序的完整堆栈跟踪?

.net - VB.NET Me.Close() 导致应用程序抛出 "has stopped working"消息

c++ - 使程序运行更快的 Visual C++ 9 编译器选项

java - 如何使用 Eclipse 搜索类的实例?

java - 将android应用程序作为java程序运行来调试

debugging - 如何在 Debug模式下运行 gulp-nodemod?

log_bin打开时mysql 5.6.21更新语句非常慢

java - 在简单的 mvc Sp​​ring Web 项目中使用 slf4j 记录器

ruby-on-rails - Puma-使用配置文件运行服务器时显示完整日志

java - 如何创建具有 1 GB 堆的可执行 jar 文件