当前位置: 首页 > news >正文

如何构建个人网站网络工程师

如何构建个人网站,网络工程师,上海最大广告公司有哪些,代做企业网站What I write, what I lost. 对于依靠打印来作debug的主要手段的, 能够区分打印中的debug信息和error信息便显得非常重要. 原文的介绍有一篇关于控制台颜色的文章http://www.ibm.com/developerworks/cn/linux/l-tip-prompt/tip01/ 有定义实现各种颜色的方式. 以此为基础, 方式挺…What I write, what I lost.   对于依靠打印来作debug的主要手段的, 能够区分打印中的debug信息和error信息便显得非常重要. 原文的介绍有一篇关于控制台颜色的文章http://www.ibm.com/developerworks/cn/linux/l-tip-prompt/tip01/ 有定义实现各种颜色的方式.   以此为基础, 方式挺有用的.   贴一段之前的使用的debug宏定义. debug的等级分为 info(关键步骤的打印.) debug(调试用的打印.) data(具体调试的时候打开的开关.) api(函数进出的打印.) warning(警告的打印. 通常用于程序已经出错, 但是不想程序就此终止.) error(错误的打印. 程序发生错误. 可能是系统的, 可能是程序错误.) fatal(严重的错误. 此时程序终止是最好的反应.)   主要想法是在程序输出众多的打印中, 能使用颜色区分开关键性的信息.    #define __FILENAME__ ((strrchr(__FILE__, /) NULL)?__FILE__:((strrchr(__FILE__, /) 1)))#define COLOUR_INFO(x) x #define COLOUR_DEBUG(x) \e[34;2mx\e[0m #define COLOUR_DATA(x) \e[34;1mx\e[0m #define COLOUR_API(x) \e[34;1mx\e[0m #define COLOUR_WARNING(x) \e[36;1mx\e[0m #define COLOUR_ERROR(x) \e[31;1mx\e[0m #define COLOUR_FATAL(x) \e[31;1mx\e[0m#define DBG_FLAG_INFO 11 #define DBG_FLAG_DEBUG 12 #define DBG_FLAG_DATA 13 #define DBG_FLAG_API 14 #define DBG_FLAG_WARNING 15 #define DBG_FLAG_ERROR 16 #define DBG_FLAG_FATAL 17#define DBG_FLAG_MODULE (DBG_FLAG_INFO | DBG_FLAG_DEBUG | DBG_FLAG_WARNING | DBG_FLAG_ERROR | DBG_FLAG_FATAL)#define DBGPRINTF_INFO(x...) \ do\ {\if(DBG_FLAG_INFO DBG_FLAG_MODULE)\{\P_PRINTF(COLOUR_INFO([%20.20s,%36.36s][%6d][ Info: ] ), __FILENAME__, __FUNCTION__, __LINE__); P_PRINTF(x);\}\ }while(0)#define DBGPRINTF_DEBUG(x...) \ do\ {\if(DBG_FLAG_DEBUG DBG_FLAG_MODULE)\{\P_PRINTF(COLOUR_DEBUG([%20.20s,%36.36s][%6d][ Debug: ] ), __FILENAME__, __FUNCTION__, __LINE__); P_PRINTF(x);\}\ }while(0)#define DBGPRINTF_DATA(x...) \ do\ {\if(DBG_FLAG_DATA DBG_FLAG_MODULE)\{\P_PRINTF(COLOUR_DATA([%20.20s,%36.36s][%6d][ Data: ] ), __FILENAME__, __FUNCTION__, __LINE__); P_PRINTF(x);\}\ }while(0)#define DBGPRINTF_API(x...) \ do\ {\if(DBG_FLAG_API DBG_FLAG_MODULE)\{\P_PRINTF(COLOUR_API([%20.20s,%36.36s][%6d][ Api: ] ), __FILENAME__, __FUNCTION__, __LINE__); P_PRINTF(x);\}\ }while(0)#define DBGPRINTF_WARNING(x...) \ do\ {\if(DBG_FLAG_WARNING DBG_FLAG_MODULE)\{\P_PRINTF(COLOUR_WARNING([%20.20s,%36.36s][%6d][Warning:] ), __FILENAME__, __FUNCTION__, __LINE__); P_PRINTF(x);\}\ }while(0)#define DBGPRINTF_ERROR(x...) \ do\ {\if(DBG_FLAG_ERROR DBG_FLAG_MODULE)\{\P_PRINTF(COLOUR_ERROR([%20.20s,%36.36s][%6d][ Error: ] ), __FILENAME__, __FUNCTION__, __LINE__); P_PRINTF(x);\}\ }while(0)#define DBGPRINTF_FATAL(x...) \ do\ {\if(DBG_FLAG_FATAL DBG_FLAG_MODULE)\{\P_PRINTF(COLOUR_FATAL([%20.20s,%36.36s][%6d][ Fatal: ] ), __FILENAME__, __FUNCTION__, __LINE__); P_PRINTF(x);\}\ }while(0)   DBGPRINTF_XXX 都可以在有些环境下换成printf直接使用.当使用调试模式的时候, 可以根据不同的打印级别, 打印出不同的颜色.扩展: 1.加上动态控制打印级别的API. 比如某些文件需要不同的打印级别.   2.加上所属线程. (对多线程程序有些作用).   3.加上时间标签.       如果使用gettimeofday不知道时候会降低系统效率. 更严重的是可能在多线程环境下打乱时序.      另外便是在ubuntu环境下发现 printf 和 gettimeofday交替使用的时候造成程序阻塞在gettimeofday. 实在是奇怪.  赶脚高手们应用程序少用debug打印的, 使用gdb才是王道.什么时候成为gdb高手最好啦.另外个人感觉, 良好的编程习惯和好的基础知识. 可以让你避免碰到那些低级的bug.是么.谢谢.      转载于:https://www.cnblogs.com/freezee/archive/2012/06/06/printf.html
http://www.pierceye.com/news/971510/

相关文章:

  • 电商网站怎么做的公司网站被黑有不良信息 做笔录
  • 前端开发可以做网站运营吗规模大的企业建站
  • 手表网网站模仿网站建设
  • 有做的小说网站怎样建设网站后台
  • 珠海高端网站制作公司兰州市建设局官方网站
  • 网站如何改首页模块有了主机如何做网站
  • 郑州哪有做网站的前端学习网站
  • 电商网站建设概念wordpress主题个人博客
  • 福州网站建设多少钱全网商城系统
  • 自己如何做团购网站在设计赚钱的网站
  • 支持wap网站的系统百度seo关键词排名查询
  • 做最好最全的命理网站郴州网络营销
  • wap网站技术怎么查询网站的建站时间
  • 深圳网站开发专业团队2o18江苏建设网站施工员模试卷
  • 网站购物建设实训心得体会中山皇冠建设开发有限公司网站
  • 做360pc网站排名首页学校网站建设工作计划
  • 网站设计与制作的基本步骤移动互联网论文
  • 建设部网站2015年第158号中国建筑材料网官网
  • 大理网站建设沛宣郑州模板建站代理
  • 新浪博客怎么上传wordpress佛山推广seo排名
  • 北京建设网站有哪些公司网络营销方法有哪几种
  • 在中国备案的网站服务器利用小说网站做本站优化
  • 网站风格的表现形式重庆观音桥房价
  • 哪些公司的网站做的很好手机网页素材
  • 天津地铁建设网站百度广告太多
  • 保定php网站制作wordpress的seo收件箱
  • 网站建设公司-跨界鱼科技优外国网站设计风格
  • 网站营销平台注册微信公众号流程
  • 西安专业网站建设服务公司商标查询网入口
  • 营销型网站设计房地产wordpress多媒体路径