随笔-5  评论-33  文章-0  trackbacks-0
    对于代码的调试,关键的debug信息可以帮助我们快速定位到问题所在的位置,好的调试信息应当包括:文件名,行号,函数名,错误码以及对应的debug信息描述等等。如果debug信息量比较大,那么为了更好的使用 grep , awk 等工具快速过滤和定位指定的debug信息,对debug信息进行适当的格式化将是很有帮助的。
下面分享一个我在开发中使用的debug工具. 希望对大家有所帮助。
#ifndef CLASS_DEBUG_LOG_INFO_H_INCLUDED
#define CLASS_DEBUG_LOG_INFO_H_INCLUDED

#include 
<stdio.h>


#ifdef DEBUG

#define LOG_DEBUG_INFO(  ) \
do \
{ \
    fprintf( stderr , 
"[%s][%d][%s][" , __FILE__ , __LINE__ , __FUNCTION__ ); \
    fprintf( stderr , __VA_ARGS__ ); \
    fprintf( stderr , 
"]\n" ); \
}
whilefalse )

#else

#define LOG_DEBUG_INFO(  ) \
do  \
{    \
    \
}
whilefalse )

#endif

#endif



//使用示例:
LOG_DEBUG_INFO( "some useful debug information to be recorded" );
LOG_DEBUG_INFO( 
"ErrCode:%d , ErrMsg:%s" , errno , strerror( errno ) );




点击下载
posted on 2010-02-26 21:11 luckycat 阅读(3311) 评论(3)  编辑 收藏 引用 所属分类: Linux

评论:
# re: C/C++ Debug工具 2010-02-27 12:00 | 凡客优惠卷
很好  回复  更多评论
  
# re: C/C++ Debug工具 2010-03-16 08:57 | zmm
为什么要包括在do{}while中呢?  回复  更多评论
  
# re: C/C++ Debug工具 2010-04-06 10:25 | Tuotoo
#ifdef DEBUG
应该是
#ifndef DEBUG
吧?  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理