Testbed静态分析常见问题总结

发布时间:2026/9/22 12:57:42

Testbed静态分析常见问题总结
静态代码检测遇到的一些问题总结_construct leads to infeasible code-CSDN博客一、函数必须有返回值原因1、如果一个函数声明为返回某种类型例如int、float或其他用户定义的类型但没有在函数体中提供返回值那么这个函数的行为是未定义的这通常会导致编译错误2、对于这种情况程序的行为是不可预测的。执行环境可能会填充任意的数据到函数的返回值中这取决于栈上当前的位置和内容以及编译器的具体实现。这种情况下函数的结果可能每次运行都不同甚至在同一台机器的不同时间运行也可能得到不同的结果。举例代码xxx函数a()没有返回值代码p.c中函数b的实现为jja();//a没有返回值赋值给jj实现错误二、判等和赋值混淆if或while条件判断中将判等“”写为赋值“”判断条件后执行操作语句中将赋值“”写为判等“”。三、内存缺陷泄露分析1、排查“只申请不释放”的场景比如 malloc/calloc/realloc 后未对应调用 free 或 free 前指针被覆盖如指针重新赋值原内存地址丢失。2、避免“重复释放”同一内存地址调用多次 free 和“野指针释放”指针声明后未赋值直接释放。案例指针重新赋值原内存地址丢失#include stdlib.hint main() {int *p (int*)malloc(4 * sizeof(int)); // 申请内存p指向地址Aif (p NULL) return 1;// 问题p直接指向新地址栈上变量a原地址A的内存无人指向无法释放int a 5;p a;free(p); // 此处free的是a栈内存而非原申请的堆内存原堆内存泄露return 0;}3、重点查条件判断、异常处理如 goto 跳转、函数提前 return 跳过 free 比如 if 块内申请内存 else 块未处理直接退出函数导致内存未释放。四、指针使用前未判空不能直接给空指针赋值因为空指针 NULL 指向内存中不合法的地址直接赋值会导致未定义行为程序崩溃、数据损坏等。五、哪些常见静态分析问题在GJB8114规则中属于必须修改GJB8114中shall规则必须改should规则非必须改常见必改问题举例1、函数返回值类型和函数定义类型不一致2、if...else if 缺少else分支必须加else的原因如下a.局部变量如果使用前只声明未定义只在if/else if里赋值漏掉else就会存在未赋值的路径编译报错。b.所有条件都不满足时加else可以捕获异常、防止逻辑漏洞3、swich缺少default必须加default原因如下a.电磁干扰、硬件故障、总线异常、时序异常会导致读到不在case范围内的非法值加default用于捕获异常4、局部变量未显式初始化5、#define 进行了重复定义#define MAX 100#define MAX 2006、宏改关键字#define int long7、宏重定义类型typedef int mytypetypedef float mytype8、无参数函数括号内未填写viodvoid Fun(){} 括号中缺少void

相关新闻

免费LLM API资源大全:企业级AI应用的成本革命与自动化管理方案

免费LLM API资源大全:企业级AI应用的成本革命与自动化管理方案

2026/8/23 1:22:43

免费LLM API资源大全:企业级AI应用的成本革命与自动化管理方案 【免费下载链接】free-llm-api-resources A list of free LLM inference resources accessible via API. 项目地址: https://gitcode.com/GitHub_Trending/fre/free-llm-api-resources 在人工智…

BBWEYY专业服务企业独立站获客策划案,含零代码SAAS、AI编程、源码定制交付

BBWEYY专业服务企业独立站获客策划案,含零代码SAAS、AI编程、源码定制交付

2026/8/23 1:22:44

独立站建设与增长策划案BBWEYY专业服务企业独立站获客策划案适用于咨询、培训、设计与企业服务机构的信任转化方案适用对象咨询、设计、教育培训、软件服务及专业机构项目目标通过专业内容和案例建立信任,持续获取预约与咨询线索建议周期4—6周首期上线方案模式BBWE…

从源码到生产:geoapi完整开发测试流程详解

从源码到生产:geoapi完整开发测试流程详解

2026/8/23 1:22:44

从源码到生产:geoapi完整开发测试流程详解 【免费下载链接】geoapi Lightweight API service to get geolocation data from IP addresses. 项目地址: https://gitcode.com/gh_mirrors/ge/geoapi geoapi是一款轻量级API服务,能够根据IP地址获取地…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/21 18:38:46

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/21 18:41:09

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/21 18:36:40

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/21 18:37:26

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/21 18:40:29

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/21 18:36:17

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/22 0:19:28

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/21 23:38:13

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/22 0:48:53

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…