调试的技巧

4 篇文章 0 订阅
3 篇文章 0 订阅

相关研究表明软件的编写中,大多数时间和精力是花在了调试上。好的调试方法也是编写好程序的关键。下面将介绍常用的集中调试技巧,主要有断言、轨迹、断点等。

1、断言assert

断言就是判断,assert断言有两种,分别是assert和ASSERT。其中,前者是标准C++中的宏,后者是MFC中的宏。断言的功能是测试它的参数,若参数为0 ,则中断执行并打印一段说明消息。在Release版本的程序中它不起任何作用。assert和ASSERT的使用方法一样。

说明:ASSERT宏同assert使用方法一样,但需要包含afx.h头文件,afx.h是MFC的头文件。VERIFY和TRACE宏都需要MFC的支持。

2、verify

verify也是一种断言,不仅可以断言简单变量,含可以断言含有函数的表达式。它是MFC中的宏,使用时写作VERIFY。

3、assert与Verify的差异

ASSERT与VERIFY宏在Debug模式下作用基本一致,二者都对表达式的值进行计算,如果值为非0,则什么事也不做;如果值为0,则输出诊断信息。但是在Release模式下效果完全不一样。ASSERT不计算表达式的值,也不会输出诊断信息;VERUFY计算表达式的值,但不管值为0还是非0都不会输出诊断信息。VERIFY与ASSERT用在程序调试上并无本质上的区别,但是建议尽量使用ASSERT宏。因为VERIFY在Release版本中虽然不输出,但仍然要做计算,这会浪费不必要的CPU时间。

4、轨迹跟踪

轨迹跟踪就是人为地加入输出语句,可以是输出变量的值,也可以是输出特定的记号。经过这样处理的程序在运行时会输出一系列的轨迹,通过观禅这些输出就可以分析出程序运行了哪些语句,在哪里出了问题。这种方法有时比使用调试器要轻便和快捷许多。

5、断点

断点时调试器设置的一个代码位置。当程序运行到断点时,程序中断执行,回到调试器。断点是常用的技巧。调试时,只有设置了断点并是程序回到调试器,才能对程序进行在线调试。断点有条件断掉、数据断点、消息断点3种。

条件断点就是带有条件判断的断点。只有当满足该条件时,断点才能中断,否则继续执行下一条语句。

数据断点是对某个表达式进行监视,当表达式的值发生改变时,就发生中断,进入跟踪状态。一般情况下,这个表达式应该由运算符和全局变量构成。

消息断点VC也支持对Windows消息进行解惑,即当某个特定消息发生时产生中断,进入跟踪状态。

——摘自《C++从入门到精通》 秦广军等编著

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值