Visual Studio C++学习笔记
第五章 如何在VisualStudio中调试代码
文章目录
Visual Studio C++学习笔记前言进入程序总结
前言
今天我们将学习如何在VisualStudio中调试代码,当然可能也支持其他IDE。
调试的两大部分:断点和读取内存。(设置断点就是为了读取内存)
进入程序
调试–debug–de bug–即删除bug,首先我们要找出bug。 先来看我们的文件 Main.cpp: Log.cpp: Log.h: 中断程序后,通过查看内存,可以看到每一个变量的值;可以逐行运行代码;步入函数等 通过点击左侧栏或者在某一行快捷键F9设置断点。并确保 解决方案配置 此时是在debug模式
在Log函数这行设置断点,点击 本地Windows调试器就可进入调试状态。 上方的三个按钮可以用来调试语句
第一个的作用是如果这行有一个函数,那么会跳入到这个函数中查看函数; 第二个作用是执行当前行,跳到下一行代码; 第三个是跳出函数。
我们来看个稍微详细些的例子: 不设置断点,可以看到打印: 我们在int a = 8;`这行打上断点,进行调试:
可以看到此时黄色箭头在第六行,此时第六行还没有运行,变量a还没有被赋值,下面显示的是未初始化的内存。
左下方 自动窗口和 局部变量中我们可以查看变量和局部变量的值,监视中可以添加想查看的变量进行查看。 我们也可以通过内存视图查看内存 这里显示了我们程序的所有内存,在上方的地址栏输入&a,可以看到a的值的十六进制数 实际上,编译器知道我们准备再做一个变量,但是还没有初始化它,所以它就会被填满,一旦出了问题就可以看看内存,看到它的内存就可以知道我没有初始化过这个变量。 F10运行这一行,可以看到上面a的内存显示变成红色,这里两个数字代表一个字节,八个十六进制的数字代表了四个字节。 下面a的值被赋为8。 再运行一行,a的值变成了9,string还没有被初始化。 再运行一行,发现string被初始化了,因为它是一个指针,还告诉了我们这个字符串的内存地址。 同理,我们继续运行代码,可以查看c的值以及它的内存。 现在,如果我想跳出循环,可以直接点击跳出(shift+F11),如果我想让for循环一直运行下去,然后在某处停止,那我就在那里打上断点,然后点击继续(F5),然后就会运行程序直到下一个断点。 可以看到打印了整个单词: 当我们想退出时,在打印台按下回车,点击继续,就可以推出调试;当然也可以手动点击红色方框退出。
总结
这就是一个非常简单基本的调试过程,可以看到内存是很重要的。