分类 调试 下的文章

“编辑并继续”是一种省时的功能,使您能够在程序处于中断模式时更改源代码。 当您通过选择一条类似 Continue 或 Step 的执行命令继续执行程序时,“编辑并继续”有限制地自动应用代码更改。 这允许您在调试会话期间更改代码,而不是停止程序,重新编译整个程序,再重新启动调试会话。

显式应用代码更改

在 Visual C++ 中,“编辑并继续”可以以两种方法应用代码更改。 代码更改可在选择执行命令时隐式应用,也可使用“应用代码更改”命令显式应用。当显式应用代码更改时,程序保持在中断模式下,不会执行。

在“调试”菜单中选择“应用代码更改”。安装 Visual Studio 时,“编辑并继续”在默认情况下是打开的。

启用和禁用“编辑并继续”

可以在“选项”对话框中禁用或启用“编辑并继续”。 无法在调试过程中更改此设置。“编辑并继续”仅在调试版本中起作用。 对于本机 C++,“编辑并继续”需要使用 /INCREMENTAL 选项,Visual C++ 环境中调试,如果设置了 /ZI 选项,仍可以使用“编辑并继续”。

 

启用/禁用“编辑并继续”

  1. 在“工具”菜单上,单击“选项”。

  2. 在“选项”对话框中打开“调试”节点,然后选择“编辑并继续”类别。

  3. 若要启用,请选择“启用‘编辑并继续’”复选框。 若要禁用,则清除该复选框。

    提示

    如果启用了 IntelliTrace 并且收集 IntelliTrace 事件和调用信息,则禁用编辑和继续。

Visual Studio 调试器包括表达式计算器,当您在**“快速监视”对话框、“监视”窗口或“即时”窗口中输入表达式时,这些计算器可以对其进行计算。 这些表达式计算器还可以在“断点”**窗口和调试器中的许多其他位置使用。

常见的表达式计算器功能

试器中常见的各种表达式计算器功能,这些功能仅因语言不同而不同。

隐式变量

在 Visual Basic 和 C# 中,通过使用表达式计算器可以创建隐式变量。 这些隐式变量永远不会超出范围,可以作为任何其他变量一样处理。在 C# 中,通过在表达式计算器中声明隐式变量可创建隐式变量。 例如,您可以在**“即时”**窗口中输入下列 C# 代码:

int b = 100;

在**“即时”窗口中执行此代码时,新的隐式变量将显示在“局部变量”**窗口中,其变量名称前有一个 $ 符号,在本例中,为 $b。

在 Visual Basic 中,不能在表达式计算器中声明隐式变量。 但是,如果在 Visual Basic 表达式计算器中使用未声明的变量,将会自动创建隐式变量。 在 Visual Basic 中,隐式变量不会列在**“局部变量”**窗口中。

断点

如果使用“即时”窗口计算包含断点的 Visual Basic 或 C# 方法或函数,将命中该断点并在**“调用堆栈”**上显示一个新框架。 下面是一个 C# 示例:

classProgram
{
static void Main(string[] args)
{
//Breakpoint here: int a = 20;
}
}

!address

这个!address扩展命令显示有关目标进程或目标计算机使用的内存的信息。

用户模式:

!address Address
!address -summary 
!address [-f:F1,F2,...] {[-o:{csv | tsv | 1}] | [-c:"Command"]}
!address -? | -help