Visual Studio中的常用调试功能(一)
8、Visual Studio调试工具栏中的按钮及图标
9、逐语句执行(F11)
逐语句(Step Into)执行也称为单步执行,即一行一行地执行程序中的代码。
如果某行代码中调用了一个函数,那么逐语句执行命令就会进入函数中去,而不是跳过函数。
这是在Visual Studio中调试最常用的功能.
10、逐过程执行(F10)
逐过程(Step Over)执行与逐语句执行有一些相似之处。
如果代码行中没有函数调用,那么执行结果是相同的,都是执行完当前代码行,在下一行代码处暂停。
如果当前代码行中有函数调用,逐过程就会跳过函数,不会进入函数内部。
11、跳出执行(Shift+F11)
跳出执行(Step Out)是指跳出当前执行的函数。该功能只有在程序暂停的状态下才可以使用,即正在逐语句或者逐过程执行代码时,跳出执行才有效。
12、运行到光标处(Ctrl+F10)
该命令未在工具栏中体现,只能通过快捷键执行。
“运行到光标处”相当于先在光标处设置一个断点,并执行到此处进行暂停。
不过这只是一个虚拟的断点,不会出现在“断点”窗口中,而且只会作用一次,即执行过后就不再起作用。
可以看到我将光标定位在ReadCommonDicomTag函数处,然后按下Ctrl+F10,代码就执行到了这里并暂停。
12、禁用断点
在第一篇文章中,我们介绍了如何创建断点。当我们创建断点后,有时候想暂时跳过某些断点,可以通过禁用断点来实现。
我们在断点占单击右键,可以通过菜单禁用断点。也可以通过快捷键Ctrl+F9来实现同样的效果。
13、查看所有断点
当我们设置多个断点后,可以通过调试-》断点菜单,查看所有断点
在这里我们可以查看所有断点,并禁用/启用断点。
14、多次执行同一代码(限C++ Native)
多次执行代码指的是在调试状态下,多次执行某些代码。
在调试过程中,我们可以看到行首有一个箭头表示当前要执行的代码位置,它相当于代码执行的指针,这个指针指向哪里,代码就执行到哪里。
可以将该指针移动到期望想要再次执行的地方,代码会执行到指针指向的行,并暂停。
移动执行指针时需要遵循两个基本原则:一是不要移动到函数外;二是不要跳过重要的初始化操作语句。
移动执行指针可能会导致预料不到的结果,这个需要根据代码情况自行分析。
15、查看局部变量
局部变量(Locals)窗口能够查看的变量是当前执行函数的作用域范围内的所有局部变量。
“局部变量”窗口可以通过“调试”→“窗口”菜单下的“局部变量”命令来打开,也可以使用Alt + 4组合键打开。
注意,作用域是函数,包括函数的参数,以及函数级别的所有变量。如果变量是全局的,就不会在“局部变量”窗口中自动显示。
在局部变量窗口中,我们可以双击值,进行修改
16、查看当前栈中的变量
自动(Autos)窗口只能显示当前栈中的一些变量。“自动”窗口可以通过“调试”→“窗口”菜单下的“自动窗口”命令来打开。
“自动”窗口就是自动显示当前调试上下文的变量。比如在刚进入一个函数时,“自动”窗口会显示这个函数的参数值以及全局变量,然后显示这个函数第一行代码所定义的变量,但是不会显示其他变量。
17、即时窗口
在即时(Immediate)窗口中,可以执行调试、计算表达式、执行语句、输出变量的值等操作。
“即时”窗口在调试状态下才可以使用,可通过“调试”→“窗口”菜单下的“即时”命令打开。
这个窗口可以理解为命令行的”快速监视“功能