vs(visual studio)调试功能里各个按钮的意义及使用方法?

Posted Dontla

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs(visual studio)调试功能里各个按钮的意义及使用方法?相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
停止调试:
全部拆离:
全部终止:

可以在这个地方打开官网帮助:在这里插入图片描述
https://docs.microsoft.com/zh-cn/visualstudio/windows/?f1url=%3FappId%3DDev16IDEF1%26l%3Dzh-CN%26k%3Dk(MSDNSTART)%26rd%3Dtrue&view=vs-2019

初步了解 Visual Studio 调试器

零基础调试的方法

看半天没什么效果,还不如找个视频教程呢???

【干货】Visual Studio 程序调试小贴士——【思路、快捷键、技巧】

非debug模式运行程序:ctrl+F5

在这里插入图片描述

设置断点:F9

在这里插入图片描述

下一步(逐过程):F10

在这里插入图片描述

进入函数(逐语句):F11(除非当前函数是库函数,否则都会进去运行相应代码)

在这里插入图片描述

跳出函数:shift+F11

在这里插入图片描述

重新调试(重新启动):Ctrl+shift+F5

在这里插入图片描述

下面这个不错啊:(有时间再看)

Visual Studio调试技巧

停止调试:从调试状态恢复到代码编辑状态(shift+F5)

在这里插入图片描述

继续:跳到下一个断点(F5)

在这里插入图片描述

- 调用堆栈:反映程序运行到当前位置已经调用过哪些函数(老师原文)

比如程序崩溃时,通过这个地方就能看到程序崩溃在哪一行代码上。
在这里插入图片描述

- 调试窗口(进入调试时才会出现的):

在这里插入图片描述

- 监视窗口:

在这里插入图片描述
在这里插入图片描述

添加监视变量:可以在名称处直接输入变量名,也可在代码变量处右键 --> 添加监视

在这里插入图片描述

注意:监视窗口只能添加当前作用域下的变量,不是当前作用域下无法添加

如果程序运行到另一个作用域,不是当前作用域的监视变量将会显示灰色
在这里插入图片描述

- 断点窗口

在这里插入图片描述
可以查看断点
在这里插入图片描述
取消打勾将会禁用断点:
在这里插入图片描述
命中次数指的是该断点所在代码执行了多少次

- 内存窗口

在这里插入图片描述
在这里插入图片描述
要输入变量的内存地址才能查看变量内存,可是如何获取变量内存地址呢?

在监视窗口,输入&+ 要监视的变量名,就能看到变量的内存地址了

在这里点击右键,选择“复制值”,粘贴到内存监控窗口内存地址处,删除后面多余的内容,敲回车即可查看变量所在地址的内存信息(当然你也可以手动输入):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个内存数据是用十六进制表示的,而且阅读顺序也要倒过来:

一个整型int类型的数字占32位内存空间,一个十六进制数占4位,4乘以8就是32位
在这里插入图片描述
注意:在这里,地址的单位是两个十六进制数,也就是一个字节
(隔行地址相差32个字节,可能我选择x64运行结果又会不同)

调试键拖拽(调试过程中返回过去的执行)

在调试过程中,有时不小心按快了,跳过了某一想要查看的步骤,这个时候怎么返回呢?

无需重新启动调试,只需将调试箭头向上拖拽即可

在这里插入图片描述
在这里插入图片描述
即可回到前面的步骤

附加到进程调试方法 attach to process(在特定情况下调试方便,具体啥情况没太听明白,比如web服务器?)(不知有啥区别?)

这个有一个参考:VS调试-附加到进程

要求:

程序必须不是稍纵即逝的,要能持续运行(至少具有一定运行时间),才能附加到进程

如果非要调试稍纵即逝的程序,可以在程序中添加代码,如getchar();,获取用户输入,能阻断程序的运行

必须是在visual studio下生成的exe文件

在项目处右键,点击重新生成:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
复制路径到win+r窗口,按enter即可打开生成的exe文件所在路径:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
双击可以启动程序:
在这里插入图片描述
然后我们打开任务管理器,点击下面的简略信息,可以看到运行的进程:
在这里插入图片描述
在visual studio中运行程序启动的窗口跟我们点exe文件打开的不是一样的,一个是visual studio的子进程,一个是独立的进程:
在这里插入图片描述
然后我们在visual studio中,关闭其他运行的程序或者调试,点击调试 -->附加到进程(对了,记得在代码上打上要调试的断点):
在这里插入图片描述
找到我们启动的同名exe进程,选择它,点击附加:
在这里插入图片描述
然后就可以想正常那样调试了,但是还是看不出这种调试方法跟原先的方法有什么区别??
在这里插入图片描述

远程附加进程调试法

如果远程调试器64位,代码编译就选64位,远程调试器是32位,代码编译就选32位,选debug还是release无影响
在这里插入图片描述
远程调试器位置:
在这里插入图片描述
注意:一定要找到当前visual studio版本对应的调试器,




先看到这里吧,其他具体可看视频

17-远程附加到进程调试【上】

其他还有:
#pragma once和#ifndef
visual studio字符编码说明
visual studio内部SDL安全检查
内存泄漏处理
处理键盘缓冲区导致的错误
让自己的程序运行在别人的电脑上
让程序运行在windows xp上
debugiew远程调试

以上是关于vs(visual studio)调试功能里各个按钮的意义及使用方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Visual Studio和CodeBlocks中反编译C++代码

Visual Studio Code-使用Chrome Debugging for VS Code调试JS

Visual Studio Many Projects in One Solution VS中多工程开发

Visual Studio2017 远程调试 Remote Debugger

Visual Studio2017 远程调试 Remote Debugger

Visual Studio Code可以编译c语言吗?怎么操作