C语言调试技巧与GDB调试实战
1. C预处理器宏与调试信息
在C语言中,预处理器定义的一些宏可以帮助我们获取调试信息。这些宏在编译时会展开,提供当前编译的相关信息。以下是一些常用的预处理器宏:
| 宏 | 描述 |
| ---- | ---- |
| __LINE__ | 表示当前行号的十进制常量 |
| __FILE__ | 表示当前文件名的字符串 |
| __DATE__ | 格式为 “Mmm dd yyyy” 的当前日期字符串 |
| __TIME__ | 格式为 “hh:mm:ss” 的当前时间字符串 |
需要注意的是,这些符号前后都有两个下划线,这是标准预处理器符号的常见做法,我们在选择符号时要避免冲突。
下面是一个示例程序 cinfo.c ,如果启用调试,它将打印编译日期和时间的信息:
#ifndef DEBUG
#define DEBUG 0
#endif
#include <stdio.h>
int main()
{
#ifdef DEBUG
printf("Compiled: " __DATE__ " at " __TIME__ "\n");
printf("This is line %d of file %s\n", __LINE__, __FILE__);
#endif
printf("hello world\n");
exit(0
超级会员免费看
订阅专栏 解锁全文
676

被折叠的 条评论
为什么被折叠?



