📘 静态分析 & 代码审查
🎯 30章 · 嵌入式实践
01
静态分析概述
什么是静态分析
为什么需要
与动态测试区别
02
代码审查基础
审查目的
正式审查
同行评审
走查
审查流程
03
静态分析工具介绍
PC-Lint
Cppcheck
Coverity
SonarQube
Clang Static
04
PC-Lint实战
安装配置
常用选项
嵌入式应用
05
Cppcheck实战
安装使用
规则配置
IDE集成
06
SonarQube实战
环境搭建
项目配置
质量门禁
07
Clang Static Analyzer
安装使用
结果解读
构建集成
08
MISRA C/C++ 规范
规范概述
关键规则
静态分析应用
09
CERT C 编码规范
规范概述
安全编码规则
工具结合
10
代码度量
圈复杂度
代码行数
注释率
深度嵌套
重复代码
11
数据流分析
数据流原理
未初始化变量
空指针解引用
12
控制流分析
控制流图
不可达代码
无限循环
13
指针分析
常见问题
悬空指针
内存泄漏
14
并发问题分析
竞态条件
死锁检测
原子性违反
15
缓冲区溢出检测
栈溢出
堆溢出
字符串操作安全
16
资源管理分析
内存泄漏
文件句柄泄漏
锁未释放
17
代码审查清单
通用清单
安全清单
性能清单
18
审查会议组织
会议准备
角色分配
问题跟踪
会议纪要
19
静态分析结果管理
误报处理
结果分级
修复跟踪
20
CI中的静态分析
Jenkins集成
GitLab CI
自动化流程
21
嵌入式C常见缺陷
未定义行为
隐式类型转换
宏定义陷阱
22
嵌入式C++常见缺陷
虚函数问题
异常安全
模板元编程陷阱
23
RTOS代码审查
任务管理
同步机制
中断处理
堆栈使用
24
驱动代码审查
寄存器操作
中断服务
DMA操作
时序约束
25
通信协议代码审查
状态机实现
数据包处理
超时处理
错误恢复
26
安全关键系统审查
IEC 61508
ISO 26262
DO-178C
27
静态分析工具对比
开源 vs 商业
工具选型指南
28
代码审查工具
Gerrit
Review Board
GitHub PR
GitLab MR
29
静态分析报告生成
HTML报告
PDF报告
仪表盘集成
30
综合案例实践
从零建立流程
嵌入式项目
全流程整合