在应用程序运行时记录 .NET 方法的调用是否可能?
在应用程序运行时记录 .NET 方法的调用是否可能?
也许您对以下选项中的一个感兴趣:
使用现有的分析器来可视化 .NET 方法的调用。这取决于分析器及其功能,但如果您不需要绝对特殊的东西,ANTS 或 DotTrace 就可以胜任。
如果您对包括调用时堆状态在内的低级实现感兴趣,则可能会对 WinDBG + Sos 及其跟踪选项(wt 命令)感兴趣。只需在 WinDbg 中设置断点,运行应用程序并收集包括低级调用在内的跟踪信息即可。
如果存在隐含的记录要求,则可以使用 .NET 分析 API(C++)记录您想要的所有内容,或者使用 dotTrace 分析器的分析 API(C#)(它与 dotTrace 一起提供)。
希望能对您有所帮助。
是的,使用postsharp。完成“入门”教程,它基本上告诉您如何做您想要的事情。使用PostSharp,您可以在任何第三方程序集中“记录”方法调用。
Craig,
你可以尝试使用Runtime Flow(由我开发)。这是一个新产品,例如无法捕获函数参数,但其主要目的是记录应用程序运行时调用的.NET方法。
目前,Runtime Flow最适合与可用源代码一起使用,但也可以配置为监视没有源代码的dll。