上一篇转载的没看懂,参考别人的代码,自己又琢磨了一个调试技巧,挺好用,姑且就叫调试开关吧,欢迎指正!!!

/*功能:调试开关
*描述:if条件成立,则打印调试信息,否则不打印()
*
*/ #include<stdio.h>
#if 1 //为0时调试关闭, 为1时调试打开
#define DEBUG_OUT(fmt, args...)\
printf("file:%s func:%s line:%d\n", __FILE__, __func__, __LINE__) #else
#define DEBUG_OUT(fmt, args...) ((void)0)
#endif
int main(void)
{
int i;
for(i = ; i < ; i++){
printf("i = %d\n", i);
}
print();
DEBUG_OUT();
return ;
} int print(void)
{
printf("hello world\n");
DEBUG_OUT();
return ;
}
-- 插入

如上代码:

1)__FILE__ 打印出调试信息所在的文件名;

2)__func__ 将会打印出调试信息所在的函数名;

3)__LINE__ 将会打印出调试信息所在文件的行号;

运行结果:

[root@embedclub test]# gcc -o debug debug.c
[root@embedclub test]# ./debug
i = 0
i = 1
i = 2
i = 3
hello world
file:debug.c func:print line:28
file:debug.c func:main line:21

c语言调试开关的更多相关文章

  1. 【转】嵌入式C语言调试开关

    在调试程序时,经常会用到assert和printf之类的函数,我最近做的这个工程里就有几百个assert,在你自认为程序已经没有bug的时候,就要除去这些调试代码,应为系统在正常运行时这些用于调试的信 ...

  2. GDAL库调试(包括跨语言调试)

    很多时候都需要调试GDAL库,尤其是像学习GDAL库中的某些算法是如何实现的时候,调试就必不可少了. 首先说明用C++的调试.以VS2008为例进行说明. 编译DEBUG版本的GDAL库,这个可以参考 ...

  3. 混合 App 打开 H5 调试开关

    背景 随着现在移动端设备的硬件性能的提高,现在web页面的体验逐渐变得可以接受,现在很多的应用都采用的Hybrid开发模式,一方面有利用了原生设备的API的优势(性能好.用户体验好),另一方面利用了w ...

  4. c语言调试接口

    http://blog.chinaunix.net/uid-10106787-id-2985587.html 在C语言程序设计中,常会出现各种各样的bug:段错误.参数异常等等.我们需要尽快定位错误, ...

  5. C语言调试过程中duplicate symbol错误分析

    说明:在我们调试C语言的过程中,经常会遇到duplicate symbol错误(在Mac平台下利用Xcode集成开发环境).如下图: 一.简单分析一下C语言程序的开发步骤. 由上图我们可以看出C语言由 ...

  6. golang语言调试

    https://software.intel.com/en-us/blogs/2014/05/10/debugging-performance-issues-in-go-programs https: ...

  7. C 语言调试信息输出宏定义

    C 语言经常在实际的调试过程中,使用最基本的调试方法printf,我们可以使用__FILENAME__.__FUNCTION__.__LINE__,增加自己的输出宏定义: #define DVR_PR ...

  8. C语言调试的几种方法

    linux系统下,在不gdb调试的情况下,我们如何解决程序崩溃问题呢?首先想到的就是添加log日志信息,其次还有以下几种方法可以帮助我们分析存在的问题: (一)add2line 程序崩溃时会打出一些崩 ...

  9. 一、C语言调试—— gdb 的使用

    1.1 gdb 调试工具常用命令 list:展开调试的源代码,缩写 l: break:设置断点,缩写为 b: info break:查看断点信息,缩写为 i b delete:删除断点 print:打 ...

随机推荐

  1. POJ 1733 Parity game (并查集)

    Parity game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6816   Accepted: 2636 Descr ...

  2. 剑指Offer43 n个骰子点数概率

    /************************************************************************* > File Name: 43_Dics.c ...

  3. 【CSS3】---属性选择器

    在HTML中,通过各种各样的属性可以给元素增加很多附加的信息.例如,通过id属性可以将不同div元素进行区分. 在CSS2中引入了一些属性选择器,而CSS3在CSS2的基础上对属性选择器进行了扩展,新 ...

  4. ZOJ 3872 Beauty of Array (The 12th Zhejiang Provincial Collegiate Programming Contest )

    对于没有题目积累和clever mind的我来说,想解这道题还是非常困难的,也根本没有想到用dp. from: http://blog.csdn.net/u013050857/article/deta ...

  5. 浅谈sqlserver数据库优化(一)----开光篇

    今天暂时无事,风和日丽,万里无云.游山的.玩水的.遛麻雀的都闲的不亦乐乎,也忙的不亦乐乎.在这美好的季节,依旧躲在被窝或是电脑旁绞尽脑汁敲键盘的人们,也别有一番滋味.废话少说,言归正传. 赶上了一个最 ...

  6. ASP.Net 获取当前时间,包含各种时间格式

    在c# / ASP.net中我们可以通过使用DataTime这个类来获取当前的时间.通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04).时间(12:12:12).日期+时间 ...

  7. XAPI(XenAPI)

      转载:http://www.cnblogs.com/dkblog/archive/2011/07/07/2099885.html 初识toolstack--XEN的XenServer管理的核心 什 ...

  8. iOS 数据模型 的 一般设计

  9. C# 数据操作工具类

    CREATE PROCEDURE [dbo].[RecordFromPage] @SelectList VARCHAR(max), @TableSource VARCHAR(100), @Search ...

  10. UI1_UISlider与UISegment

    // // ViewController.m // UI1_UISlider与UISegment // // Created by zhangxueming on 15/7/7. // Copyrig ...