Successfully reported this slideshow.
Cppcheck架构分析<br />Cppcheck概述<br />静态代码分析工具<br />检查点<br />
Cppcheck架构分析<br />总体<br />
Cppcheck系统C++实现类<br />
参数分析<br />外部输入<br />内部抽象 class Settings<br />字符交互模式<br />CmdLineParser parser(&_settings);<br />
Cppcheck总过程<br />
预处理<br />预处理处理由Preprocessor类实现<br />         执行Class Preprocessor::preprocess()<br />
Tokenize<br />解析代码成符号<br />由class Tokenizer实现<br />实现接口 class Tokenizer::tokenize()<br />
Simplify<br />目的:<br />简化复杂代码<br />统一化<br />由class Tokenizer实现<br />实现接口 class Tokenizer::simplifyTokenList()<br />Simplif...
Cppcheck核心类class cppcheck<br />Cppcheck程序的主干类<br />核心函数check()<br />     处理入口,在此函数对输入代码进行初步分析处理,最后将代码传递给 CheckFile().<br /...
Class cppcheck::check()函数  &class cppcheck:: CheckFile()函数的实现<br />
Cppcheck检查实现类check<br />
检查类的组织方式:static std::list<Check *> _instances;<br />链表在哪?<br />    check类instances()函数中静态变量<br />怎样加入检查类链表?<br />父类的构造函数执行...
Cppcheck核心类check<br />Void runChecks()  <br />主要是检查经过tokenize,但未经过simplify的代码流<br />Void runSimplifiedChecks() <br />主要是检查...
Cppcheck用户扩展类CheckOther<br />用户扩展接口<br />添加检查函数方法:<br />
Thank you<br />
Upcoming SlideShare
Loading in …5
×

Cppcheck分析

1,584 views

Published on

这是Cppcheck的代码架构分析

Published in: Education
  • Be the first to comment

  • Be the first to like this

Cppcheck分析

  1. 1. Cppcheck架构分析<br />Cppcheck概述<br />静态代码分析工具<br />检查点<br />
  2. 2. Cppcheck架构分析<br />总体<br />
  3. 3. Cppcheck系统C++实现类<br />
  4. 4. 参数分析<br />外部输入<br />内部抽象 class Settings<br />字符交互模式<br />CmdLineParser parser(&_settings);<br />
  5. 5. Cppcheck总过程<br />
  6. 6. 预处理<br />预处理处理由Preprocessor类实现<br /> 执行Class Preprocessor::preprocess()<br />
  7. 7. Tokenize<br />解析代码成符号<br />由class Tokenizer实现<br />实现接口 class Tokenizer::tokenize()<br />
  8. 8. Simplify<br />目的:<br />简化复杂代码<br />统一化<br />由class Tokenizer实现<br />实现接口 class Tokenizer::simplifyTokenList()<br />Simplify规则<br />对变量<br /> 对条件循环语句if 、for、while<br />(详细规则见word)<br />
  9. 9. Cppcheck核心类class cppcheck<br />Cppcheck程序的主干类<br />核心函数check()<br /> 处理入口,在此函数对输入代码进行初步分析处理,最后将代码传递给 CheckFile().<br />核心函数CheckFile()<br />函数功能是分析一个代码文件,CheckFile()会将代码流做进一步的分析,做tokenize,simplify,处理后分析代码,报告错误<br />
  10. 10. Class cppcheck::check()函数 &class cppcheck:: CheckFile()函数的实现<br />
  11. 11. Cppcheck检查实现类check<br />
  12. 12. 检查类的组织方式:static std::list<Check *> _instances;<br />链表在哪?<br /> check类instances()函数中静态变量<br />怎样加入检查类链表?<br />父类的构造函数执行时加入检查链表<br />何时实例对象?<br />命名空间中以全局变量方式存在<br />
  13. 13. Cppcheck核心类check<br />Void runChecks() <br />主要是检查经过tokenize,但未经过simplify的代码流<br />Void runSimplifiedChecks() <br />主要是检查经过tokenize,但未经过simplify的代码流<br />
  14. 14. Cppcheck用户扩展类CheckOther<br />用户扩展接口<br />添加检查函数方法:<br />
  15. 15. Thank you<br />

×