对于代码的调试,关键的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" ); \
}while( false )

#else

#define LOG_DEBUG_INFO(
) \
do \


{ \
\
}while( false )

#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 阅读(3322)
评论(3) 编辑 收藏 引用 所属分类:
Linux