如何让PC-Lint在消息中打印完全限定的函数名?

时间:2013-04-08 21:03:02

标签: lint pc-lint

我正在使用PC-Lint生成一个XML文件,其中包含运行生成的所有警告。

这个过程几乎完美无缺,有一个相当恼人的例外。我无法获取消息格式来打印发现警告的完全限定的函数名称。它只打印精简的函数名称。没有命名空间,没有类名。

这是我使用的格式字符串(我已经在本文末尾的文档中包含了相关的格式信息):

-"format=<message> <file>%f</file> <func>%i</func> <line>%l</line> <type>%t</type> <code>%n</code> <desc>%m</desc> </message>"

所以,例如,为此:

class Bar {
    void foo(int bar) {
    }
};

我得到的错误就是这样(为便于阅读而破坏了行):

<message>
  <file>D:\Code\CPPTest\CPPTest.cpp</file>
  <func>foo</func>
  <line>3</line>
  <type>Info</type>
  <code>715</code>
  <desc>Symbol 'bar' (line 2) not referenced</desc>
</message>

如您所见,函数名称写为foo而不是Bar::foo,我希望/期望。

在有人询问之前,对于-format字符串中的函数转义符号,我已经尝试了%i%I;两者都生成了相同的裸骨功能名称。

有没有人知道是否有一个神奇的格式转义来获取完全限定的名称?


来自PC-Lint -format文档:

  

%f =文件名
  (请注意,选项+ ffn,代表“完整文件名”,可用于控制是否使用完整路径名。)
  %l =行号
  %t =消息类型(错误,警告等)
  %n =消息号
  %m =消息文本
  %c =列号
  %C =列号+1
  %i =调用函数
  %% =百分号
  %(...%)=有条件地包括表示为
的信息   by ...如果错误发生在文件中。
  \ n =换行符
  \ t =标签
  \ s =空间
  \ a =闹钟(变为ASCII 7)
  \ q =引用(“”)
  \ =反斜杠('\')

1 个答案:

答案 0 :(得分:0)

对您来说可能为时已晚:) 但是有一个标志 ffn(在消息中使用完整的文件名)

您可以将其添加到主 lnt 文件中

+ffn

https://www.gimpel.com/archive/lint7.htm

相关问题