前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >eclipse cdt:使用Grep Console插件 实现log输出自动中转到源码

eclipse cdt:使用Grep Console插件 实现log输出自动中转到源码

作者头像
10km
发布2019-05-25 22:22:24
1.5K0
发布2019-05-25 22:22:24
举报
文章被收录于专栏:10km的专栏10km的专栏

版权声明:本文为博主原创文章,转载请注明源地址。 https://cloud.tencent.com/developer/article/1433679

eclipse 中有一项很有用的特性,就是在控制台输出日志时,只要满足如下图的格式,就可以显示为源码链接,鼠标点击就可以到达日志输出的源码位置 。

然而这个特性只对java代码有效,对c/c++代码无效,c/c++代码在控制台的日志输出eclipse只当作普通文本,不会自动识别其中的源码位置。这在调试的时候增加了一点麻烦,找到源码的位置就要多花几秒的时间。

能不能解决这个问题呢?在google上找了一天,发现了这个叫grep console的eclipse插件,可以满足我的要求。

先看看grep console插件实现的效果(ubuntu16 + eclipse neon.3):

按CTRL键鼠标点击蓝色链接,就可以打开源码到指定的行号

安装grep console插件

grep console插件安装很简单,以下是 grep console的官网,

https://marian.schedenig.name/projects/grep-console/

安装grep console插件可以直接在 Eclipse Marketplace中搜索grep console找到后点install就可以了。

安装好插件后在preferences中会多出一个Grep Console项目,看到它说明你的插件安装好了。

配置Grep Console

grep console有非常灵活的定制方式 允许程序员根据自己的项目输出日志格式定制grep console搜索代码链接的方式

然后可以参照grep console官网手册的说明(https://marian.schedenig.name/wp-content/static/grepconsole_userguide/)来定制自己的日志输出识别配置

如果你不想麻烦,可以用我做的一套适用于c/c++的配置。

先下载这个 xml文本: https://gitee.com/l0km/codes/7xc6s8tbyha9ne0quwkdp60 到本地

如下图打开grep console的配置界面,也可以从eclipse菜单Windows\Preferences\Grep Console打开。

如下图将下载的配置文件加载进来。

加载之后,如下图要把新的配置全部勾选,才能生效。

然后你就可以尝试在自己的代码中用输出日志看看效果了。下面是我写的一组用于输出日志的宏定义,可以直接用于日志输出自动添加源码文件名和行号:

代码语言:javascript
复制
#include <stdio.h>

#define FL_DEF_STRING(x) #x

// debug 调试工具
#define fl_printf(out,type,fmt,...) \
fprintf(out,"[" FL_DEF_STRINGt(type) "]" "%s:%d: " fmt "\n",__FILE__,__LINE__,## __VA_ARGS__)
#define fl_log_info(fmt,...) fl_printf(stdout,INFO,fmt,## __VA_ARGS__)

#ifdef  NDEBUG
#define fl_log_debug(fmt,...)
#define FL_LOG_DEBUG_IF(exp,fmt,...)
#else
#define fl_log_debug(fmt,...) fl_printf(stdout,DEBUG,fmt,## __VA_ARGS__)
#define FL_LOG_DEBUG_IF(exp,fmt,...) if(exp)fl_log_debug(fmt,## __VA_ARGS__);
#endif

#define fl_log_warn(fmt,...) fl_printf(stderr,WARN,fmt,## __VA_ARGS__)
#define fl_log_error(fmt,...) fl_printf(stderr,ERROR,fmt,## __VA_ARGS__)

#define FL_LOG_WARN_IF(exp,fmt,...) if(exp)fl_log_warn(fmt,## __VA_ARGS__);
#define FL_LOG_ERROR_IF(exp,fmt,...) if(exp)fl_log_error(fmt,## __VA_ARGS__);

开始你的定制

如果你对我的grep console配置文件中的颜色及日志格式定义不满意可以根据自己的需要修改

如下图双击其中一个配置(Debug),可以修改用于识别日志格式的正则表达式

打开下面的界面可以根据你的需要修改grep console搜索源码的基准位置

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年07月07日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装grep console插件
  • 配置Grep Console
  • 开始你的定制
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档