Scitools Understand
拿到一个陌生的项目想要快速知道程序的控制流和数据流,对程序进行一个全局性的理解,代码分析工具scitools understand就能满足上述需求。掌握这个工具也可以验证代码实现逻辑,尤其对于大型项目,变得非常有用。
官网:https://scitools.com/
关系图说明1
- Butterfly:如果两个实体间存在关系,就显示这两个实体间的调用和被调用关系
- Calls:展示从你选择的这个方法开始的整个调用链条
- Called By:展示了这个实体被哪些代码调用,这个结构图是从底部向上看或者从右到左看
- Calls Relationship/Calledby Relationship:展示了两个实体之间的调用和被调用关系,操作方法:首先右键你要选择的第一个实体,然后点击另一个你要选择的实体,如果选择错误,可以再次点击其他正确即可,然后点击ok
- Contains:展示一个实体中的层级图,也可以是一个文件,一条连接线读作”x includes y“
- Extended By:展示这个类被哪些类所继承
- Extends:展示这个类继承自那个类
- Control Flow:展示函数内部执行流程
- Cluster Control Flow:展示一个实体的流程图或者类似实体类型,这个比上一个更具有交互性
- UML Class Diagram:展示这个项目中或者一个文件中定义的类以及与这个类关联的类
- UML Sequence Diagram:展示两个实体之间的时序关系图
自动代码格式注释
doxygen可以查看函数调用图,按照特定格式注释,还能得到说明文档。详细操作及介绍参考博客2介绍。开源项目《算法导论》中算法的C++实现也在使用该工具添加注释。
静态代码分析
PC-lint是一种静态代码检测工具,可以查出许多逻辑错误,对于检查代码bug,早期排错很有用,但不免费。另一款开源软件TscanCode,使用简单,支持C++、Lua、C#,也是博主偏爱的。
...