分类 调试 下的文章

p (Step)

p命令执行单个指令或源代码行,并可选地显示所有寄存器和标志的结果值。当子例程调用或中断发生时,它们被视为单个步骤。

用户模式:

[~Thread] p[r] [= StartAddress] [Count] ["Command"] 

本文描述如何调试托管代码和本机代码,这一过程也称作混合模式调试。 根据 DLL 或应用程序是否用本机代码编写,有两种方案可以用来进行调试:

  • 调用 DLL 的调用应用程序是用本机代码编写的。 在这种情况下 DLL 是托管的,托管调试器和本机调试器都必须启用,以调试托管代码和本机代码。 可以在**“<Project> 属性页”**对话框中选中此选项。 具体如何检查取决于是从 DLL 项目中启动调试,还是从调用应用程序项目中启动调试。

  • 调用 DLL 的调用应用程序是用托管代码编写的,而 DLL 是用本机代码编写的。

启用混合模式调试调用的本机应用

  1. 在“解决方案资源管理器”中选择项目。

  2. 在“视图”菜单上,单击“属性页”。

  3. 在“<Project> 属性页”对话框中,展开“配置属性”节点,然后选择“调试”。

  4. 将“调试器类型”设置为“混合”或“自动”。

启用混合模式调试托管的调用应用程序

  1. 选择中的 C# 项目解决方案资源管理器,然后选择属性图标中,按Alt+Enter,或右键单击,然后选择属性。

  2. 选择调试选项卡,然后选择启用本机代码调试。

  3. 关闭属性页以保存所做的更改。

若要从 DLL 项目而不是从调用应用程序启动调试,必须在“<项目> 属性页”对话框或窗口中输入信息以指示 DLL 项目在何处才能找到调用应用程序。 C++“属性页”在布局和内容方面与 C# 和 Visual Basic“属性页”不同。请参考与项目语言相对应的过程。如果托管 DLL 由本机代码调用,并且您希望调试两者,则必须同时启用托管调试器和本机调试器。 可以在“<Project> 属性页”对话框或窗口中设置此项。

在 C++ 项目中指定调用应用程序

  1. 在“解决方案资源管理器”中选择 DLL 项目。

  2. 在“视图”菜单上选择“属性页”。

  3. 在“项目 属性页”窗口中的“配置”下拉列表中,选择“调试”。

  4. 打开“配置属性”文件夹并选择“调试”类别。

  5. 在“要启动的调试器”列表中,选择“本地 Windows 调试器”或“远程 Windows 调试器”。

  6. 在“命令”或“远程命令”框中单击下拉箭头,并从列表中选择“浏览”来找到应用程序。 或者,键入应用程序的路径和名称。

  7. 在“命令参数”框中键入所有需要的程序参数。

在 C# 项目中指定调用应用程序

  1. 在“解决方案资源管理器”中选择 DLL 项目。

  2. 在“视图”菜单上选择“属性页”。

  3. 在“项目 属性页”窗口中的“配置”下拉列表中,选择“调试”。

  4. 单击“调试”选项卡。

  5. 可通过执行以下任一操作来启动应用程序:


    1. 将“启动操作”设置为“启动外部程序”。

    2. 在“启动外部程序”框中,单击省略号按钮以通过浏览找到应用程序。

    3. 在“命令行参数”框中输入所有需要的程序参数。

  6. 或者,可以在 URL 处调用应用程序。 (如果要调试本地 ASP.NET 应用程序所使用的托管 DLL,可能会需要使用此方法。)


    1. 在“启动操作”下,选择“启动浏览器显示 URL:”单选按钮。

    2. 在紧邻的文本框中,键入 URL。

 

dt (Display Type)

dt命令显示有关局部变量、全局变量或数据类型的信息。这可以显示有关简单数据类型以及结构和联合的信息。

用户模式下:

dt [-DisplayOpts] [-SearchOpts] [module!]Name [[-SearchOpts] Field] [Address] [-l List] 
dt [-DisplayOpts] Address [-l List] 
dt -h