实现调试器支持:选择调试API

时间:2009-07-19 17:44:16

标签: .net debugging api clr

.NET Framework具有非托管debuggingprofiling API,我认为人们/公司都熟悉这些API。如果有人正在为新的CLI运行时实现调试器和分析器支持¹:

  • 这些现有API的基本操作的优缺点是什么?
  • 这些API通过增加接口扩展号来保持向后兼容性,以指示对后续功能的支持。我将有机会组合这些接口并删除已弃用的方法,因为没有“向后”兼容。这是个好主意吗?这里有一点感兴趣的是,这不会消除与现有调试器的源代码兼容性,因为我的系统需要在托管代码中实现调试器。托管API,现有的API是用非托管代码编写的。
  • 是否有其他记录的调试/分析API可用?他们的功能设置是否与上面提到的一样完整?

¹我喜欢在家里进行先进的长期项目,让我学习并思考解决大问题的方法。我知道还有其他的可用,但我想在一个人身上找到真正看到的内容,而且我已经是一个体面的方式了。

²我找不到描述它的链接,但它也广泛用于Visual Studio API。我相信我在“COM接口命名指南”文档中看到了它?您将其视为ICorDebugClass2界面,显示扩展ICorDebugClass界面而不更改原始界面。

1 个答案:

答案 0 :(得分:3)

我正在使用分析API,所以我的大部分评论都是关于CLR分析器的 MSDN文档已退出错误。 您将获得方法或类正在执行的操作的一般描述以及方法参数的简短描述。没有例子。
如果你很幸运,你可以找到一些关于你的问题的博客。

对于探查器API有用的一些链接是:
This MSDN magazine artical - 旧的,但是一个很好的起点 David Borman's blog - 不经常更新,但值得金的信息:) The CLR team blog - 每月更新几次 转子CLR source code
如果你遇到困难,你可以随时尝试邮寄CLR团队,当我们需要他们的帮助时,他们实际上非常有帮助。

关于兼容性问题: 我不确定我明白你在这里问什么,我知道的是这个:
如果您不必支持以前的版本,请转到最新的CLR 4。 CLR 4包含一些重大更改(CLR的几个实例可以在同一进程中并行运行)阅读this post并决定如何处理它。

  

我的系统需要在托管代码中实现调试器。托管API,现有的API是用非托管代码编写的。

据我所知,您可以为调试器API下载托管包装API的源代码。 (现在找不到链接)

希望它有所帮助。