1

我正在尝试编写一个使用 .NET 分析 API 的 COM 服务器。此 COM 服务器将在 Windows Mobile 6 设备上运行。此 COM 服务器的目的是分析在同一设备上运行的 .NET 应用程序。但是,我无法在 Windows Mobile SDK 中找到以下头文件:

  1. 心电图
  2. corprof.h

这是否意味着我需要使用 Windows(桌面)SDK 中可用的相应版本来移植这些头文件?

正是这些头文件定义了对使用 .NET Profiling API 至关重要的 ICorProfilerCallBack 接口系列。

我查看了 Windows SDK 中存在的这些头文件,我发现它们包含许多与 .NET 框架的对象模型相关的平台特定信息,以及表示 .NET 程序集的 PE 文件的格式. 看来我需要深入了解 .NET 这些领域的实现细节才能成功移植。有没有其他选择?

4

1 回答 1

1

您遇到的问题是您一开始就错误地假设 Compact Framework 支持任何ICorProfilerCallBack接口。它不是。如果您想进行分析,我见过/使用过的其他分析器过去遵循了一些路径:

  1. 使用反射在桌面上重建和检测 CF 程序集。使用您自己的专有发布范例,您可以推出功能进入/退出消息和类似的东西。这对于代码分析很有用,但对内存分析没有多大用处。
  2. 为 CF 构建 Mono.Cecil 并使用它在目标设备上进行检测/发射。这更慢,但更便携。
  3. 在 CF 中使用完全未记录的内存分析 API,就像CF CLR Profiler使用的那样。我已经在这些方面寻找了任何文档,但结果都是空的,我试图让微软在 Codeplex 上开源该工具,但我在任何一个方面都取得了零进展,所以这将是大量的逆向工程使用现有工具和 Wireshark 处理网络数据包。
于 2013-02-19T14:03:38.350 回答