我正在使用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 =引用(“”)
\ =反斜杠('\')
答案 0 :(得分:0)
对您来说可能为时已晚:) 但是有一个标志 ffn
(在消息中使用完整的文件名)
您可以将其添加到主 lnt 文件中
+ffn