【发布时间】:2012-08-18 19:03:02
【问题描述】:
我正在尝试编写一个 .NET 应用程序,它可以分析其他 .NET 进程并列出它们进行的所有调用,包括传递的参数的值。
我知道用“ICorProfilerCallback2”之类的东西编写我自己的分析器可以帮助解决这个问题,但这似乎是一项非常具有挑战性的任务。在开始之前,我想确定这是唯一的方法。
我研究了开源 .NET 分析器等,例如 part-cover、CLR Profiler v4.0 等,但它们似乎都没有提供托管 API 来执行此操作,而且它们所做的比我需要的要多得多(内存分析等)。
还有其他方法可以做到这一点吗?进行这种分析的更简单方法?我在这里有什么选择?
【问题讨论】:
-
您真的需要查看“所有”电话吗?还是只是 key 调用?也许像 mini-profiler 这样的东西会有所帮助,但我也在想“PostSharp”这里......
-
@MarcGravell 我要介绍的应用程序不是我的,所以我认为 Postsharp 做不到。
-
不确定这是否真的是一个 API,但 SlimTune 至少具有某种插件功能...
-
@MarcGravell 我想知道这是否可以通过使用 Postsharp 和一些 IL 编织工具来完成。即 Mono Cecil 注入 Postsharp 属性(尽管 AFAIK 这需要在分析之前生成新的二进制文件)
-
扩展 WinDbg 怎么样? :-)
标签: .net profiling instrumentation il