为GCC错误消息提供漂亮的打印效果

时间:2012-10-23 07:59:11

标签: gcc boost g++ optional-parameters gcc-warning

我正在使用GCC 4.7.2。我的代码在模板,STL和boost用法上相当沉重。当我编译并且在某些类或函数中出现错误或使用某些boost / STL功能时,我会收到错误消息,显示我的类/函数的非常可怕的返回类型和/或函数参数。

我的问题:

  

对于包含boost / STL类型的GCC警告/错误,是否存在漂亮的印刷类型,因此错误消息中显示的返回类型与我在代码中输入的内容相对应,或者至少变得更易于理解?

我已经简要地浏览了this question,但这是关于GDB而不是GCC ......

我也遇到了this pretty printer in Haskell,但这似乎只是增加了结构,而不是带走(大部分)不需要的细节......

还有其他建议吗?

2 个答案:

答案 0 :(得分:2)

您可以尝试由David Abrahms& Sons提供的'C ++ Template Metaprogramming'中提到的STLfilt。 Alesky Gurtovoy。

本书包含有关模板消息诊断的章节。它建议使用STLFilt /showback:N来消除编译器回溯材料,以便简化输出。

答案 1 :(得分:2)

我问similar question,有人建议我尝试gccfilter。它是一个Perl脚本,它重新格式化g ++的输出并对其进行着色,缩短它,隐藏完整的路径名,以及更多。

实际上,这个建议也很好地回答了这个问题:它能够隐藏不需要的细节并且能够漂亮地打印STL和boost类型。所以:我也会把这个留在这里作为答案。

我能看到的唯一缺点是需要从脚本中调用g ++(即,当时不可能使用g +管道)。我怀疑它很容易修复,无论如何,这是一个相对较小的问题。