文章目录

  • [【干货】Visual Studio 程序调试小贴士——【思路、快捷键、技巧】](https://www.bilibili.com/video/BV1iZ4y1j7a5?from=search&seid=11976484625361745732)
    • 非debug模式运行程序:ctrl+F5
    • 设置断点:F9
    • 下一步(逐过程):F10
    • 进入函数(逐语句):F11(除非当前函数是库函数,否则都会进去运行相应代码)
    • 跳出函数:shift+F11
    • 重新调试(重新启动):Ctrl+shift+F5
  • [Visual Studio调试技巧](https://www.bilibili.com/video/BV1Vf4y1W7F7/?spm_id_from=autoNext)
    • 停止调试:从调试状态恢复到代码编辑状态(shift+F5)
    • 继续:跳到下一个断点(F5)
    • - 调用堆栈:反映程序运行到当前位置已经调用过哪些函数(老师原文)
    • - 调试窗口(进入调试时才会出现的):
    • - 监视窗口:
    • 添加监视变量:可以在名称处直接输入变量名,也可在代码变量处右键 --> 添加监视
    • - 断点窗口
    • - 内存窗口
    • 调试键拖拽(调试过程中返回过去的执行)
    • 附加到进程调试方法 attach to process(在特定情况下调试方便,具体啥情况没太听明白,比如web服务器?)(不知有啥区别?)
    • 远程附加进程调试法
    • 自动变量窗口和局部变量窗口


停止调试:
全部拆离:
全部终止:

可以在这个地方打开官网帮助:
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)

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

比如运行发布release的程序崩溃时,会生成一个核心转储文件,通过这个文件进行调试就能看到程序崩溃在哪一行代码上。

在嵌套多层代码时,比如函数调用函数,有不同的局部变量,这在栈中表现出不同的区域快,通过调用堆栈窗口能够查看这些不同作用域的区域块的局部变量:

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

- 监视窗口:


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

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

如果程序运行到另一个作用域,不是当前作用域的监视变量将会显示灰色

- 断点窗口


可以查看断点

取消打勾将会禁用断点:

命中次数指的是该断点所在代码执行了多少次

- 内存窗口



要输入变量的内存地址才能查看变量内存,可是如何获取变量内存地址呢?

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

在这里点击右键,选择“复制值”,粘贴到内存监控窗口内存地址处,删除后面多余的内容,敲回车即可查看变量所在地址的内存信息(当然你也可以手动输入):



这个内存数据是用十六进制表示的,而且阅读顺序也要倒过来:

一个整型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远程调试

自动变量窗口和局部变量窗口

“自动变量”窗口显示当前断点周围使用的变量。 “局部变量”窗口显示在局部范围内定义的变量,通常是当前函数或方法。
参考自:Visual Studio 调试系列5 检查变量(使用自动窗口和局部变量窗口)

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

  1. 12个Visual Studio调试效率技巧

    在这篇文章中,我们假定读者了解VS基本的调试知识,如: F5 开始使用调试器运行程序 F9 在当前行设置断点 F10 运行到下一个断点处 F5 从被调试的已停止程序恢复执行 F11 步进到函数内(如果 ...

  2. 利用Visual Studio调试JavaScript脚本

    大家如果用过JavaScript一定对它的调试感到很头痛吧,浏览器所返回给你的错误信息基本没有任何意义.一个很小的错误可能导致调试大半天,费时费力. 先说些废话= =b...昨天公布了研究生寝室分配结 ...

  3. Visual Studio调试/加载速度很慢

    本文翻译自:Visual Studio debugging/loading very slow I'm at wits end. 我的智慧结束了. Visual Studio is typically ...

  4. Visual Studio调试之断点技巧篇

    不知道能不能算是技巧啦,写出来放到首页贻笑大方而已. 函数断点 在前面的文章Visual Studio调试之避免单步跟踪调试模式里面我讲了如何设置函数断点,说实话,我个人喜欢设置函数断点,而不是在代码 ...

  5. OpenCV图像监视:在Visual Studio调试器中查看内存中图像

    OpenCV图像监视:在Visual Studio调试器中查看内存中图像 图像监视:在Visual Studio调试器中查看内存中图像 先决条件 安装 例子 更多的 图像监视:在Visual Stud ...

  6. Visual Studio调试之断点基础篇

    原文链接地址:http://www.cnblogs.com/killmyday/archive/2009/09/26/1574311.html 我曾经问过很多人,你一般是怎么调试你的程序的? F9, ...

  7. Visual Studio调试技巧

    [本文出自程序人生 >> Visual Studio调试小技巧]记得<Windows核心编程>一书的开头部分讲到了Visual Studio中一个查看错误消息的小技巧,前几天调 ...

  8. 【C++】在 Visual Studio 调试器中指定符号 (.pdb) 和源文件(转载自RSS翻译)

     在 Visual Studio 调试器中指定符号 (.pdb) 和源文件 查找并指定符号文件和源文件:指定符号加载行为.使用符号和源服务器:自动或按需加载符号.  内容 查找符号 (.pdb) ...

  9. Visual Studio调试器指南---自动启动调试器

    visual studio 启动调试器,等待 app 连接 Visual Studio调试器指南---自动启动调试器 Visual Studio调试器指南---自动启动调试器 - 走看看 有时,可能需 ...

最新文章

  1. Python 之 matplotlib (六)tick能见度
  2. python爬虫编程100例_哪种Python程序员最赚钱?爬虫数据告诉你!
  3. AI公开课:19.03.06何晓冬博士《自然语言与多模态交互前沿技术》课堂笔记以及个人感悟
  4. 安全研究剖析:******方式演示
  5. rxjava 并行_使用RxJava和Completable并行执行阻塞任务
  6. linux 程序包管理5 编译安装
  7. Google Research新成果,让表格理解和检索更上一层楼!
  8. 使用javax.mail发送邮件
  9. HyperLPR Python3车牌识别系统的入门使用
  10. HomeBrew 安装 国内源
  11. grep命令做永久别名 显示颜色
  12. 话里话外:个体时间管理的二三事
  13. java实现复制粘贴功能代码,附源代码
  14. 校友故事|我在科大感受理工科“严谨的浪漫主义”
  15. 网站建设对企业的好处有哪些?
  16. redis 集群详解及搭建过程
  17. 服务器固态支持热插拔吗,固态硬盘支持热插拔吗?
  18. VSCode搭建 c 环境教程
  19. VUE中created被重复调用(每次进入页面之后都会调用created)
  20. 自动生成fbi代码网站

热门文章

  1. 【重复制造精讲】定义重复制造参数文件
  2. ABAP 字符串操作
  3. SAP中破解系统管理员密码
  4. EBPY0106是什么意思
  5. 生产订单结算KKS1常见错误
  6. 在流程梳理的过程中,OA工作组应采用国际先进方法
  7. 微盟616零售购物节观察:私域流量增值是社交生态的真实价值
  8. c语言汽水瓶换汽水的编程题,c语言:2种方法编程及优化;喝汽水问题
  9. 二级c语言上机编程技巧,二级C语言上机编程题技巧总结
  10. vb不能插入png图片_第16节-图片 | 剑雨Axure RP9系列「基础」