Visual Studio Debug 教程:入门

学习资料:

开始学习:

与大多数 IDE 一样,Visual Studio 有两个调试阶段:

一是发现并解决 Build 过程中的项目和编译错误。
二是发现并解决 Run 过程中的动态错误。

1.Build Solution

Build 一个 Solution 先从配置开始。

Solution 的配置有两种基本类型: Debug 和 Release,区别如下:

  • Debug模式生成的可执行文件运行速度慢,包含各种调试信息,不会商用
  • Release模式生成的可执行文件进行了优化,可商用

配置好工程之后,就可以开始 Build 了。

最简单的方法是按下 F7,也可以在菜单中选择 Build Solution。

2.输出窗口

解决方案生成过程中的输出窗口

输出窗口会显示原始编译器输出,如Error,Warning 等。可以单击 Error 或 Warning 转到对应的代码行。

3.错误列表窗口

生成过程产生的错误、警告信息可以在错误列表窗口查看。

错误列表窗口

遇到错误解决方案:

  1. 将错误信息放到百度去搜
  2. VS自带了搜索功能,右键错误信息,点击“显示错误帮助”,通产也可以解决问题(另外,也可以点击 错误代码超链接,如 C4819,同样会执行该错误代码的搜索)。

4.代码静态分析

解决了生成过程中的错误,接下来就是要执行代码静态分析。在一开始的时候,尽量解决代码中出现的警告信息,可以省去将来不必要的麻烦。

5.运行程序

解决方案生成成功后,按下F5键,将在Debug环境下启动程序。

6. 设置断点

按键

对应执行的操作

F10

单步执行

F11

跳转至内层函数

Shift+F11

从当前函数跳出

在对应的代码行左侧空白处单击或者按下F9键,将在代码行左侧出现红色圆点,这就是常说的断点。按下F5键,程序即会在断点处停下来。还有几个常见操作,如下表:

按键

对应执行的操作

F10

单步执行

F11

跳转至内层函数

Shift+F11

从当前函数跳出

7. 查看变量

在Debug模式下,程序执行到断点处停下来,可以查看变量的值,堆栈调用的情况。可以将鼠标悬停在变量名上查看,也可以在监视窗口中输入变量名查看,如:

在监视窗口中查看变量的值

在上图中可以看到我在调试程序时监视了srcImageNamesrcImage这两个变量。

结语

以上就是今天所要介绍的在Visual Studio Debug环境下调试程序常用操作,文中如有不当之处欢迎留言。 我们下次再见。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ImportSource

Redis性能问题排查解决手册

阅读目录: 性能相关的数据指标 内存使用率 命令处理总数 延迟时间 内存碎片率 回收key 总结 性能相关的数据指标 ? 通过Redis-cli命令行界面访问...

78470
来自专栏趣谈编程

用户空间和内核空间是什么?

学习 Linux 时,经常可以看到两个词:User space(用户空间)和 Kernel space(内核空间)。

3.4K30
来自专栏Python攻城狮

Python网络爬虫(五)- Requests和Beautiful Soup1.简介2.安装3.基本请求方式5.程序中的使用4.BeautifulSoup4

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,...

14740
来自专栏Golang语言社区

服务器端Go程序对长短链接的处理及运行参数的保存

对长、短连接的处理策略(模拟心跳) 作为一个可能会和很多Client进行通讯交互的Server,首先要保证的就是整个Server运行状态的稳定性,因此在和Cli...

44370
来自专栏我是业余自学C/C++的

实验一 查看CPU和内存,用机器指令和汇编指令编程

22030
来自专栏xcywt

Linux下检测内存泄露的工具 valgrind

参考:http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html 几乎是照抄参考过来的,只不过...

63690
来自专栏小樱的经验随笔

【批处理学习笔记】第八课:批处理符号(1)

一、 @ 这个字符在批处理中的意思是关闭当前行的回显。我们从前几课知道ECHO OFF可以关闭掉整个批处理命令的回显,但不能关掉ECHO OFF这个命令,现在...

29040
来自专栏Linux驱动

13.Linux键盘按键驱动 (详解)

在上一节分析输入子系统内的intput_handler软件处理部分后,接下来我们开始写input_dev驱动 本节目标:        实现键盘驱动,让开发板的...

46150
来自专栏游戏杂谈

Linux下使用rsync同步文件

遇到的问题是几台游戏服务器,有一台新的服务器之前已经copy(Linux的scp命令)过文件上去,但在测试的过程中发现还是图片无法正常不显示出来,然后用http...

57520
来自专栏阮一峰的网络日志

User space 与 Kernel space

学习 Linux 时,经常可以看到两个词:User space(用户空间)和 Kernel space(内核空间)。 简单说,Kernel space 是 Li...

30350

扫码关注云+社区

领取腾讯云代金券