Ira*_*chi 9 .net c# clr instrumentation dynamic
我知道instrumentation是一种将跟踪代码动态添加到方法中以启用跟踪和调试的技术.
我想知道这是否只是一个"跟踪"选项,硬编码到CLR中只添加跟踪代码,还是有能力添加任何代码到方法?
例如,我想检查某个类中每个方法调用开头的条件(比如权限).我可以通过在执行时间的方法开头添加动态代码来实现吗?
我不确定这种跟踪"仪表"的工作原理是什么,但我想知道这是否也可以用于其他目标.
Oha*_*esh 4
基本上,您应该做的是编写一个 CLR 探查器并在 C++ 中使用探查器 API 您需要实现 ICorProfilerCallback 接口。 您正在寻找的是 JITCompilationStarted 回调中的内容。每次调用托管方法时以及 jit 编译器将 IL 编译为机器代码之前,都会调用此方法。运行时的任何代码插入工作都应该在 JITCompilationStarted 中完成。 您可以查看开源覆盖工具部分 cover作为示例,了解如何执行此操作。
归档时间:
15 年,9 月 前
查看次数:
5698 次
最近记录:
13 年,8 月 前