我如何分析像open62541这样的复杂项目?

问题描述 投票:1回答:1

我是一名学生,目前正在尝试使用cppcheck和frama-c分析C中OPC Ua协议的参考实现。我的目标不是进行非常专门的测试,而是进行一些常规/基础测试,以查看代码是否存在一些明显的问题。

可以找到该项目here

我正在使用Ubuntu 19.10和Frama-C版本20.0(Calcium)运行VM。

我执行的步骤如下:

git clone https://github.com/open62541/open62541.git
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 /path/to/source
frama-c -json-compilation-database /path/to/compile_commands.json

直到现在一切都按预期工作,并且没有错误。

但是现在我很难理解如何继续。我需要分别对所有文件进行分析还是可以像使用cppcheck一样投入整个项目?

我一般如何处理?我需要一步一步分析所有文件吗?

例如,我尝试过:

frama-c -json-compilation-database /path/to/compilation_commands.json -val /path/to/open62541/src/

返回:

[kernel] Parsing src (with preprocessing)
gcc: warning: /path/to/open62541/src/: linker input file unused because linking not done
[kernel] User Error: cannot find entry point `main'.
  Please use option `-main' for specifying a valid entry point.
[kernel] Frama-C aborted: invalid user input.

因此,frama-c显然需要一个入口点,但是我不知道我需要指定哪个入口点。

非常感谢您提供任何帮助。抱歉,我不了解。这是我的第一个此类项目,而frama-c和open62541项目的复杂性让我有点不知所措。

frama-c
1个回答
0
投票

我需要分别对所有文件进行分析还是可以像使用cppcheck一样投入整个项目?

© www.soinside.com 2019 - 2024. All rights reserved.