如何构建一个附加到.NET进程并侦听特定类型事件的自定义调试器?

And*_*ena 5 .net debugging profiling

我打算制作一个非常具体的分析工具来监听特定类型的事件,也就是说,我有一个类型T,它有它的事件.每当T的任何实例触发事件时,我都想知道.

用户运行分析应用程序,附加到进程,应用程序开始生成日志.

可能吗?如果是真的,我该如何开始?

San*_*ath 2

几年前,我从事过类似的工作,但不完全是分析。我开始的方法是查看MSDN 上提供的CLR Profiler的源代码,然后弄清楚它如何附加到正在运行的应用程序,您必须执行一些非托管代码,但可以直接选择它来自 CLR Profiler ;)

以下是您可以开始查看的一些地方。

ICorDebug - 提供允许开发人员在 CLR 中调试应用程序的方法。

其他调试接口- 您可以连接到 CLR 进行调试和分析的所有方式。

ICorProfilerCallback - 要查看分析实现的第一个接口。

分析接口- 用于您想要实现的任何分析事件。

CLR Profiler - 我会看看它的来源,它可以做你想做的一切。