【发布时间】:2010-08-06 21:17:34
【问题描述】:
我的工作涉及使用我没有来源的第三方工具进行系统级性能测试。我也在测试 Windows,可以使用调试符号但不能使用 Windows 源代码。我想要一种定量的方式来描述我的测试涵盖的主机操作系统的区域。有两个重要步骤:确定我想要查看的 DLL 和函数,然后确定如何分析对它们的调用。
报道的想法:
- kernel.dll、ntdll.dll、user.dll 等的所有函数...主要的内置模块。这可能是一个巨大的过度杀伤,并且可能会发现许多仅与弃用功能有关的差距。
- 只是目标应用程序使用的任何 DLL 的模块名称。没有那么详细,但也不太可能错过目标应用中的关键功能。
- 应用特定的模块,例如 DirectX 10 应用的 d3d10.dll。
- 基本块。我猜这将是一篇博士论文的工作量。
分析想法:
- 对我的所有测试运行 VTune 调用图分析。这种工作,但似乎提供了一个有限的视图来了解实际调用了哪些内置函数。
- 使用 Pin 或 DynamoRIO 等工具动态检测应用程序。可能的缺点:慢。
- 使用 WinDbg 捕获呼叫。不确定这是否会比 Pin 更容易或更快捷。
- 使用 IDA Pro 等反汇编工具进行静态分析。
在 Windows 上是否有任何已发表的符合这些思路的作品?您是否曾经使用过其中一种工具来进行足够多的挂钩或日志记录,以至于您可以推荐它?
【问题讨论】:
标签: winapi code-coverage windbg intel-vtune