Eclipse CDT Linux下内存分析 实战历险

简介: C++产品开发,上线集成时,都需要内存泄露、覆盖率等检测,这些在Windows下都有很好的工具,如 Visual Studio: 这个内置了很多的工具 Devpartner: VC6时BoundChecker非常棒,Devpartner集成了很多的功能集合 http://www.

C++产品开发,上线集成时,都需要内存泄露、覆盖率等检测,这些在Windows下都有很好的工具,如

Visual Studio: 这个内置了很多的工具

Devpartner: VC6时BoundChecker非常棒,Devpartner集成了很多的功能集合 http://www.borland.com/products/devpartner/default.aspx

Insure++: http://www.parasoft.com/jsp/products/insure.jsp?itemId=63

而在Linux环境下,选择少了很多,下面把eclipse中的工具使用说明一下,好费劲。

环境

Ubuntu 10 64位

Eclipse Juno

具体步骤

1、Eclipse CDT【http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/keplerr】安装好后,linux tools 【http://www.eclipse.org/linuxtools/index.php】 内置集成了很多的工具

不过启动后一用,报错

java.lang.NullPointerException
        at org.eclipse.linuxtools.internal.valgrind.core.ValgrindCommand.readIntoBuffer(ValgrindCommand.java:82)

google一下,这个问题还出现过,但没有解答,不知道如何解决

2、既然如此,直接使用吧, 进入 http://valgrind.org/ 下载安装

按照docs目录下的文档,测试一个程序后,出现,错误提示

valgrind:  
valgrind:    On Debian, Ubuntu:                 libc6-dbg
valgrind:    On SuSE, openSuSE, Fedora, RHEL:   glibc-debuginfo

 http://askubuntu.com/questions/148236/valgrind-does-debug-error  中给出了方法

执行sudo apt-get install libc6-dbg, 提示 E: 无法安装的软件包 错误
咋办,找到如下的快捷解决方法
sudo apt-get update; sudo aptitude install libc6-dbg
ubuntu关于aptitude和apt-get http://blog.csdn.net/yili_xie/article/details/4803314
使用aptitude 解决包冲突的问题,又学了一招

3、使用:以上全部安装好后,终于可以正常使用了

valgrind --leak-check=yes ./aa 检查一个测试程序,终于正常了

此时在进入Eclipse中可以了,具体效果看下图

image

此时可以直观的看到泄露和提示

另外:Eclipse对于C++还提供了其他的一系列工具,辅助代码的分析等,具体如下:覆盖率等等,这些的使用后续仅需看看

image

 

相比Windows下的这些工具,配置和使用起来真是有些麻烦。

相关文章
|
4月前
|
存储 弹性计算 缓存
阿里云服务器ECS经济型、通用算力、计算型、通用和内存型选购指南及使用场景分析
本文详细解析阿里云ECS服务器的经济型、通用算力型、计算型、通用型和内存型实例的区别及适用场景,涵盖性能特点、配置比例与实际应用,助你根据业务需求精准选型,提升资源利用率并降低成本。
303 3
|
8天前
|
数据管理 Linux iOS开发
Splunk Enterprise 9.4.5 (macOS, Linux, Windows) - 机器数据管理和分析
Splunk Enterprise 9.4.5 (macOS, Linux, Windows) - 机器数据管理和分析
33 0
|
3月前
|
存储 人工智能 自然语言处理
AI代理内存消耗过大?9种优化策略对比分析
在AI代理系统中,多代理协作虽能提升整体准确性,但真正决定性能的关键因素之一是**内存管理**。随着对话深度和长度的增加,内存消耗呈指数级增长,主要源于历史上下文、工具调用记录、数据库查询结果等组件的持续积累。本文深入探讨了从基础到高级的九种内存优化技术,涵盖顺序存储、滑动窗口、摘要型内存、基于检索的系统、内存增强变换器、分层优化、图形化记忆网络、压缩整合策略以及类操作系统内存管理。通过统一框架下的代码实现与性能评估,分析了每种技术的适用场景与局限性,为构建高效、可扩展的AI代理系统提供了系统性的优化路径和技术参考。
166 4
AI代理内存消耗过大?9种优化策略对比分析
|
Unix Linux iOS开发
Splunk Enterprise 10.0.0 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台
Splunk Enterprise 10.0.0 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台
52 0
|
7月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
1401 77
|
5月前
|
缓存 Linux 数据安全/隐私保护
Linux环境下如何通过手动调用drop_caches命令释放内存
总的来说,记录住“drop_caches” 命令并理解其含义,可以让你在日常使用Linux的过程中更加娴熟和自如。
1028 23
|
7月前
|
监控 Linux Python
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
233 27
|
7月前
|
监控 Linux
Linux基础:文件和目录类命令分析。
总的来说,这些基础命令,像是Linux中藏匿的小矮人,每一次我们使用他们,他们就把我们的指令准确的传递给Linux,让我们的指令变为现实。所以,现在就开始你的Linux之旅,挥动你的命令之剑,探索这个充满神秘而又奇妙的世界吧!
147 19
|
7月前
|
关系型数据库 MySQL 应用服务中间件
Linux 手动安装快速部署 LNMP 环境实战
本文详细记录了在阿里云ECS上手动搭建LNMP环境的过程,系统选用Ubuntu 24.04。主要内容包括:1) 使用`apt`安装Nginx和MySQL,并更新软件源;2) 编译安装PHP 8.4.5,配置PHP-FPM及环境路径;3) 配置MySQL root用户密码;4) 调整Nginx支持PHP解析并测试整体环境。通过此过程,重现手动配置服务器的细节,帮助熟悉各组件的安装与协同工作。
389 23