加载托管代码调试的扩展命令

在非托管调试器中可以使用两种不同类型的命令。第一种被称为元命令。元命令是指在调试引擎中内置的命令。例如help、sympath以及cls 等,都是元命令。当执行元命令时,必须在命令前面加上前缀“.”。例如,要设置符号路径,我们可以使用元命令sympath,如下所示:

 

要得到元命令的完整列表,可以使用help命令。另一种类型的命令被称为扩展命令。扩展命令是在调试器引擎之外的独立DLL中实现的,这些DLL也 被称为调试器扩展。 在发布非托管调试器时,通常带有一定数量的调试器扩展DLL,这些DLL由Microsoft的不同技术小组开发,分别用于对某种特定技术中的问题进行调 试。除了随调试工具一起发布的扩展DLL之外,还可以通过调试器SDK来开发自己的扩展DLL(请参见调试器帮助文档或者《Windows高级调试》一书 的第11章)。在执行扩展命令时,要在命令前面加上前缀“!”。例如,要执行扩展命令htrace,可以使用以下形式:

 

除了随Windows调试工具集发布的诸多扩展DLL外,还有许多其他的扩展DLL。 在调试托管代码时,有两个扩展DLL需要注意,它们分别是SOS和SOSEX。

在使用这些扩展DLL之前,必须通过元命令load来通知调试器。元命令load的参数是需要加载的扩展DLL的路径。例如,要加载位于c:\\adnbin路径下的myext.dll,可以使用以下命令:

 

我们来看看如何通过元命令load来加载SOS调试器扩展和SOSEX。

原文地址:https://www.cnblogs.com/dushu/p/2500806.html