简单调试技术

很长时间没写东西了,光看不写,玩的多学的少~恶习渐渐形成。大概浏览了一本叫C++调试指南的书,很薄很了几个感觉很实用得调试方法,在此总结下。调试技术分为两块基本,一部分为tracing(跟踪技术),一部分为debugger(调试器技术)。跟踪分为基本跟踪(basic tracing)和扩展跟踪(extended tracing)。基本跟踪就是用简单的cout语句跟踪变量值的变化。扩展跟踪涉及到标记(flag)和函数调用(function call)的使用,有了他们跟踪功能可以方便的打开和关闭,而且需要编写和插入到程序中的代码量会减少。下面就常见的方法分开总结:

1.使用bool变量来打开和关闭跟踪。记得有的建议用宏定义,感觉差不多,生成的可执行文件大小小一点,效率可能高一点。
例如:
bool trace_on = true;
...
if(trace_on)
{
 cout<<end<<"Location 1"<<endl
 <<"Value is: "<<value<<endl;
}
...

2.如果if中的变量值很多,那么可以写成一个函数的形式
if(trace_on)
{
 trace_display();
}
void trace_display(int location, int value1...);//location 可以为行号,用来标注位置

3.使用assert函数
以前经常使用,但是不知道有一个快捷的方法关闭,就是在assert的头文件加上一行代码就可以了,如下
#define NDEBUE
#include <assert.h>
这样以后的assert宏就不被执行,对于经常修改的大型程序,这种方法非常方便。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值