由于引起运行时错误的原因难以发现,所以我们有时候要利用工具来完成调试工作。Debug就是Visualc++提供的一种常用调试工具,它能让语句一句一句或一段一段执行,并且能够观察程序运行过程中各变量的变化情况。

在介绍如何使用debug工具之前,我们要介绍一下什么是断点(breakpoint)。当程序运行到断点的时候,它会暂时停止运行后面的语句,供用户观察程序运行的情况,并等待用户发出指令。断点不是语句,而是附在某条语句上的一个标志。

  1. 设置和移除断点

单击设置需要断点的语句,使光标移动到该语句所在行,按下F9后就会发现在该语句之前出现一个红点,这就是断点标志,如果要移除它,用同样的方式也是按F9,红点就消失不见了。我们可以给一个程序设置多个断点。

  1. GO语句

设置断点后,就能开始调试程序了,与以前不同,不能直接按执行按钮,而是要按F5,或者使用菜单来操作。一旦选择了go项,程序会正常运行直至遇到断点。

debug窗口功能翻译(和我的菜单上的是一样有)

restart 重新开始调试

stop debugging 停止当前调试

break execution 停止程序的执行并转回调试

apply code changes 使调试过程中修改的程序代码生效

shownext statement 显示将要执行下一条语句的位置,在语句之前用黄色箭头表示

step into 进入语句调用的函数,并进行调试

step over 不调试语句调用的函数

step out 从当前调试的位置回到调用该函数的位置

run to cursor 正常运行直到光标所在行。

在调试的时候,不能总按“step into”,因为它对于系统提供的函数也是有效的。也就是说我们能够详细的看到系统是如何实现一个输出功能的,甚至可以看到这些语句的汇编语言形式。但是,这并不是我们调试的主要目标。如果不小心进入了系统函数里,要及时按“step out”以退回到我们所编写的程序中来。

  1. 用debug找到错误

在debug中,我们可以让语句一句句地执行,如果执行到某一句语句时发生了运行时错误,那么这个错误一般是由这个语句引起的。

在debug中。可以观察每一句语句执行的顺序和执行后变量变化的情况。如果发现程序无法实现即定的功能,我们可以将期望的结果和实际的结果作比对,并分析可能引起这些不同的原因,这样一来,大大加快了找到问题和解决问题的速度。

本篇完,欢迎大家收藏与转发!

一段程序结束等待进行下一段程序_c++实战篇(十二),debug调试程序相关推荐

  1. 微信小程序|开发实战篇之二

    开发实战篇之二 前言 1.零碎知识点和优化点 1.1 ES6模板字符串 1.2 ES6扩展运算符 1.3 独立更新like组件状态 1.4 自定义组件支持hidden 2.音乐music组件开发 2. ...

  2. linux下启动应用程序,RedHat Linux 9下启动应用程序

    RedHat Linux 9下启动应用程序 发布时间:2005-09-02 14:07:29来源:红联作者:zz123 我安装了一个从互联网上下载的应用程序,一切似乎都正常,但在我键入它的名称后,却总 ...

  3. linux java 段错误的是,Linux下的段错误产生的原因及调试方法 转

    1楼 简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个 ...

  4. linux 程序播放音频,linux下编写C++程序播放音频

    linq实现数组转符号分割的字符串(备忘) fitemidstr = string.Join(",", detailpre1.Select(i => i.Key.ToStri ...

  5. Scrapy实战篇(二)之爬取链家网成交房源数据(下)

    在上一小节中,我们已经提取到了房源的具体信息,这一节中,我们主要是对提取到的数据进行后续的处理,以及进行相关的设置. 数据处理 我们这里以把数据存储到mongo数据库为例. 编写pipelines.p ...

  6. java学习文档_资深程序员带你深入了解JAVA知识点,实战篇,PDF文档

    JAVA 集合JAVA 集合面对浩瀚的网络学习资源,您是否为很难找到适合自己的学习资源而感到苦恼过?那么,您来对地方了.在这里我们帮助大家整理了一份适于轻松学习 Java 文章的清单.JVM 文字太多 ...

  7. python人工智能之:多边形矩阵热图程序实战篇(二)

    前言 这是一个多边形组件热图程序,跟上一节的六边形组件类似,用于计算出整个通道内的数据的最大.最小值,主要用到的知识matplotlib.Numpy.Pandas,也就是python中的科学计算.数据 ...

  8. Linux下的段错误调试方法

    转自http://wenku.baidu.com/view/7416d23710661ed9ad51f33f.html 执行socket文件时,出现段错误 (core dumped) 产生段错误就是访 ...

  9. 用 GDB 调试Linux下的C程序

    查看程序出现段错误的语句,可以使用where命令,好像与bt命令相同. GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB等IDE的调 ...

最新文章

  1. mysql 选项_mysql常用选项
  2. 小甲鱼python课后题答案_Python 小甲鱼教程 课后练习44
  3. Java中,为什么子类的构造方法中必须调父类的构造方法?
  4. python web开发,organization的model设计
  5. DeFi 衍生品平台 Deri Protocol 新增三家投资者
  6. 学习笔记(1):activiti6.0从入门到精通-设置流程变量(概述)
  7. 事务的acid属性是指_Mysql事务的性质 为什么要用事务?
  8. windows命令行包管理工具 -Scoop
  9. Mysql - 聚簇索引和辅助索引
  10. matlab randn state 2,randn('state',0)是什么意思?
  11. 硬件设计4---什么是电感、磁珠?
  12. 软件分享之浏览器部分
  13. php belongsto,php-Laravel:belongsTo()关系假定一对多关系,而不是一对一关系
  14. python 变量大小,进程和内存信息
  15. 手把手教你“撸”一套企业级代理服务-前言
  16. 移动支付技术崛起 多功能集成的趋势
  17. 模仿扇贝短文阅读页面
  18. 很实用的Eclipse小工具——Easy Explore和Explore FS
  19. 计算机软件大赛征稿,全国多媒体教育软件大奖赛征稿函
  20. 操作系统实验一 进程调度 FCFS_SJF_HRRN_RR算法

热门文章

  1. 8-2-Listener监听器
  2. php mysql查询出来二叉树的数据_tp框架怎么实现二叉树查询 如图,查询数据库中小明下面的所有人。到底下面多少人,不清楚。 代码如何实现...
  3. sql依据单个字段去重_小白学习笔记,测试工程师必备SQL语句整理
  4. 怎么让电脑屏幕一直亮着_上班族需要注意哪些养生禁忌 一直坐着没好处_百姓民生_新闻...
  5. mysql 类似wm concat_oracle中有没有类似于mysql中的group_concat的函数?
  6. 计算机名字需要加_PC吗,ecs计算机名字
  7. 传统红色纹样图案背景|中式海报必备素材
  8. 圣诞节手绘插画素材,点燃节日温情
  9. 最佳展示场景kit:顶部视角的展示场景(Mockups)
  10. 如何产生cpk图形_PPK与CPK定义,差异分析及计算