valgrind使用指南

一、内存泄露检测

文件test_valgrind.cpp

#include <iostream>

 

int main() {

int* a = NULL;

a = new int[10];

return 0;

}

 

g++ -g test_valgrind.cpp

 

valgrind --leak-check=yes ./a.out

 

输出如下:

从上图可以看出,有40bytes的内存尚未释放,问题代码在该文件的第5行。

 

使用技巧:用valgrind时, 强烈建议加上参数: --error-limit=no, 不加--error-limit=no参数时,超过一定警告数量后,就不再打warning信息了,要让所有warning都打出来,要用!!

 

二、线程错误检测

文件test_helgrind.cpp:

#include <pthread.h>

 

int var = 0;

void* child_fn ( void* arg ) {

var++; /* Unprotected relative to parent */ /* this is line 6 */

return NULL;

}

 

int main ( void ) {

pthread_t child;

pthread_create(&child, NULL, child_fn, NULL);

var++; /* Unprotected relative to child */ /* this is line 13 */

pthread_join(child, NULL);

return 0;

}

 

编译: g++ -g test_helgrind.cpp -lpthread

运行helgrind: valgrind --tool=helgrind ./a.out

结果如下:代码提示主线程和子线程都在写var.

 

 

 

参考: http://valgrind.org/docs/manual/quick-start.html

一、集成环境说明 本集成是在windows10环境进行集成。 需要在集成的笔记本上安装Android Studio (版本:2022.2.1以上)软件,并配置软件环境。 二、版本集成流程 1、集成前一天准备工作: 发邮件通知项目组成员本次集成时间,督促组员及时确认redmine/jira上本版本需要集成的功能和bug是否对应完成。已对应完成的功能/bug及时完成代码静态检查和功能自测。 2、集成前提条件: ①各模块组员须在集成时间之前及时上传各自模块(通过本地编译)的代码; ②各模块组长需要在集成前,针对组员提交的代码进行基本的确认,并合并分支代码到主干上; ③明确本次集成包含的内容:新开发的功能项或修正的bug等,并填写release note; 3、集成后的工作: ①针对本次集成的代码进行打标(需在网页版填写简要版releasenote); ②整理并发布releasenote(命名为《S32_ISA_Navi_ReleaseNote_V0.1.0.xlsx》),记载集成的软件版本信息及对应的功能,; ③发布集成邮件,需要在邮件附件中添加releasenote、集成检查结果文档、代码静态检查结果;发布对象包含:PM、开发、测试、QA等; ④关联的文档和程序需要上传git,路径:document-DF\04INTEGRATION\0401ReleaseReport\S32\S32_ISA_Navi_V0.1.0_20250717\ReleaseNote; 三、集成具体步骤 (一)apk集成(车机用) 1、拉取git上最新的代码; 2、内存泄露检查:工具手顺位于document/07EM/0701Environment/S32ISA导航系统软件集成手顺/KIAS_ER05_WI0002_valgrind使用指南.doc 在本地c++代码编译出的so所在目录下使用如下命令:valgrind --leak-check=full ./so_test ,执行完毕后出现“All heap blocks were freed -- no leaks are possible”表示无内存泄露,填写《S32_ISA_Navi_Vx.x.x_内存泄露检查结果.xlsx》 3、静态扫描:工具手顺位于document/07EM/0701Environment/S32ISA导航系统软件集成手顺/KIAS_ER04_WI0002_C__Test使用指南.doc (1).检查Redmine上个版本的静态扫描检测出的问题是否都已修改 (2).根据静态检查规则集在Parasoft C++中进行配置,并按照使用指南在Parasoft C++中生成对应的项目。 (3).选择需要静态扫描的代码文件,通过C++test进行静态扫描,并且生成静态扫描报告。 总结并且详细化
最新发布
08-13
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值