VS调试技巧

发布时间:2024年01月22日

本篇文章主要是详细介绍vs中常见的快捷键,以辅助我们更好地debug。

F9:创建断点和取消断点,以辅助我们更好地观察程序运行。

比如在这个程序中,我们认为他在循环以外的内容都没有错误,我们只需要修改最后的内容。这时我们就可以在最后的位置打上断点。

?此时我们可以使程序运行起来,然后程序运行到断点的位置会停止,然后我们可以按F11或F10运行程序来观察我们想观察的数据。

但是如果在第10行的位置也按一个F9,程序会不会来到16行呢? 答案是不会,F5的作用是让它来到执行逻辑的下一个断点处。

值得一提的是,还可以对断点进行编辑。右击断点,点击操作:

我们可以对断点进行各种各样的操作,比如让它满足某个条件才执行。

?

当我们只是想让程序运行起来,我们应该按CTRL+F5。

除了这些快捷键,我们还能查看到VS中还有别的快捷键,所以我们可以来探索探索!

我们可以看一下调试窗口中的一些功能:

在debug x86环境下,我们调试这一个代码:

(关于x86和x64的环境有什么区别,这里再插播一句)?

?

不难看出,这个代码中循环越界访问了,那么为什么打印出来的结果是死循环呢。

通过监视窗口,我们可以观察到arr[12]中初始化为0后,i也初始化为0。再次运行,我们就会发现,随着arr[12]的增大,i的值也在增大,那么,这是为什么呢?

当我们&arr[12]和&i的时候,我们就会发现这两个的值一模一样。当arr[12]快要变成13的时候,arr[i]又将它初始化为0,i永远不可能变成13,这个循环永远不可能停下来,这样的现象使其永远不可能停止下来。

局部变量是习惯性放到栈区上的,先放到高地址,再放入低地址。i先创建,就在高地址上申请了一块空间。数组地址的特点:随着下标的增长,地址是由低向高变化的。

如上图初始化,那么就会使其初始化到i的时候将其初始化为0。

i小于等于11或10都不会覆盖到i。中间不一定都是两个空格。

在数组传参,调试进?函数,如何在监视窗?观察数组的内容: 数组名,n 的形式。
?

文章来源:https://blog.csdn.net/GISer_pearl/article/details/135730508
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。