Maw*_*awg 2 c++ xml static-code-analysis cppcheck
这个
cppcheck --enable=style --inconclusive --check-config --xml --xml-version=2 -v -I.. -I../mocks -I../gmock -I../gtest -DUNIT_TEST ../src
Run Code Online (Sandbox Code Playgroud)
结果
<?xml version="1.0" encoding="UTF-8"?>
<results version="2">
<cppcheck version="1.52"/>
<errors>
Checking ../src/AppMain.cpp...
</errors>
</results>
Run Code Online (Sandbox Code Playgroud)
显然,我做错了-但是呢?
顺便说一句,我确定代码有问题,但是可以肯定的是,我将这两行粘贴到了其中
char a[10];
a[10] = 0;
Run Code Online (Sandbox Code Playgroud)
而且没有报告超出范围引用
没有一个简单的实例来重现该问题,很难提供帮助。
首先,删除check-config参数,因为它执行以下操作:
--check-config检查cppcheck配置。正常代码分析被该标志禁用。
知道源代码很重要,因为如果您定义UNIT_TEST,并且由于此原因该特定代码段未处于活动状态,它将不会显示任何问题。
此外,如果您想看到错误,则应指定“ --enable = all”,因为越界被归类为错误而不是样式。但是,未使用的变量(如您的示例中给出的)是一个样式问题。
运行cppcheck(v1.72)
cppcheck --enable=all --inconclusive --xml-version=2 -v foo.cpp
Run Code Online (Sandbox Code Playgroud)
在这个
void main()
{
char a[10];
a[10] = 0;
}
Run Code Online (Sandbox Code Playgroud)
为我带来以下输出
<?xml version="1.0" encoding="UTF-8"?>
<results version="2">
<cppcheck version="1.72"/>
<errors>
<error id="unreadVariable" severity="style" msg="Variable 'a' is assigned a value that is never used." verbose="Variable 'a' is assigned a value that is never used.">
<location file="foo.cpp" line="5"/>
</error>
<error id="arrayIndexOutOfBounds" severity="error" msg="Array 'a[10]' accessed at index 10, which is out of bounds." verbose="Array 'a[10]' accessed at index 10, which is out of bounds.">
<location file="foo.cpp" line="5"/>
</error>
</errors>
</results>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3349 次 |
| 最近记录: |