vs不能调试_设置断点,开始调试

默认情况下,程序不会进入调试模式,代码会瞬间从开头执行到末尾。要想观察程序的内部细节,就得让程序在某个地方停下来,我们可以在这个地方设置断点。所谓断点(BreakPoint),可以理解为障碍物,人遇到障碍物不能行走,程序遇到断点就暂停执行。

91ba70f909426cc034b0c674eddfddea.png


上图中,我们希望让程序在第4行代码处暂停执行,那么在第4行代码左侧的灰色部分单击鼠标即可插入断点。你也可以将光标定位到要暂停的代码行,然后按F9键插入断点。也可以在要暂停的位置单击鼠标右键,在弹出菜单中插入断点,如下图所示:

b05a78712973ef66a64fa43d2e0f1d66.png


插入断点后,点击上方的“运行”按钮,或者按F5键,即可进入调试模式,如下图所示:

c5d20a0f3aae28110bc8d8262878b7aa.png


可以看到,程序虽然运行了,但并未输出任何数据,这是因为在输出数据之前就暂停了。同时,在IDE的上方出现了与调试相关的工具条,下方也多出了几个与调试相关的窗口:

  • 调用堆栈可以看到当前函数的调用关系。

  • 断点窗口可以看到当前设置的所有断点。

  • 即时窗口可以让我们临时运行一段代码,后续我们会重点讲解。

  • 输出窗口和我们之前看到的没有,用来显示程序的运行过程,给出错误信息和警告信息。

  • 自动窗口会显示当前代码行和上一代码行中所使用到的变量。

  • 局部变量窗口会显示当前函数中的所有局部变量。

  • 线程模块窗口暂时无需理会。


如果你的VS缺少某个窗口,可以通过VS上方的“调试”菜单调出,如下图所示:

5c99f256087c5fb5facc34e3ab7f2f95.png

注意:必须在调试状态下才能看到图中的菜单。

如果你希望关闭某个窗口,可以在窗口标题处单击鼠标右键,在弹出菜单中隐藏,如下图所示:

e0e1656182ecc61d0c52fbf7df780239.png

断点的真正含义

严格来说,调试器遇到断点时会把程序暂时挂起,让程序进入一种特殊的状态——中断状态,这种状态下操作系统不会终止程序的执行,也不会清除与程序相关的元素,比如变量、函数等,它们在内存中的位置不会发生变化。关键是,处于中断状态下的程序允许用户查看和修改它的运行状态,比如查看和修改变量的值、查看和修改内存中的数据、查看函数调用关系等,这就是调试的奥秘。

继续执行程序

点击“运行”按钮或者按F5键即可跳过断点,让程序恢复正常状态,继续执行后面的代码,直到程序结束或者遇到下一个断点。在调试过程中,按照上面的方法可以设置多个断点,程序在执行过程中每次遇到断点都会暂停,如下图所示:

c6d97755a0fa7fae83d1d767c6b03922.png

删除断点

如果不希望程序暂停,可以删除断点。删除断点也很简单,在原有断点处再次单击鼠标即可,也可以将光标定位到要删除断点的代码行,再次按F9键,或者在右键菜单中删除,如下图所示

f302ab4807006f0d0f7bed75f87f3d69.png

代替暂停语句

在VS下,程序运行结束后不会自动暂停(一闪而退),要手动添加暂停语句system("pause");,如果大家觉得麻烦,也可以在代码最后插入断点,强制程序暂停。

10b79e2cbad38821cfddd80cee3e1196.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值