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

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打开。
这里写图片描述

如下图将下载的配置文件加载进来。
这里写图片描述
加载之后,如下图要把新的配置全部勾选,才能生效。
这里写图片描述
然后你就可以尝试在自己的代码中用输出日志看看效果了。下面是我写的一组用于输出日志的宏定义,可以直接用于日志输出自动添加源码文件名和行号:

#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搜索源码的基准位置
这里写图片描述

猜你喜欢

转载自blog.csdn.net/10km/article/details/80953578