摘要:
--防止内存泄露 Linux下用Valgrind做检查发布时间:2007.10.25 06:15来源:赛迪网作者:sixth用C/C++开发其中最令人头疼的一个问题就是内存管理,有时候为了查找一个内存泄漏或者一个内存访问越界,需要要花上好几天时间,如果有一款工具能够帮助我们做这件事情就好了,valgrind正好就是这样的一款工具。Valgrind是一款基于模拟linux下的程序调试器和剖析器的软件套件,可以运行于x86, amd64和ppc32架构上。valgrind包含一个核心,它提供一个虚拟的CPU运行程序,还有一系列的工具,它们完成调试,剖析和一些类似的任务。valgrind是高度模块化 阅读全文
摘要:
dmalloc用法快速入门dmalloc是一个简单易用的C/C++内存leak检查工具,以一个运行库的方式发布。dmalloc能够检查出直到程序运行结束还没有释放的内存,并且能够精确指出在哪个源文件的第几行。dmalloc 主页:http://dmalloc.com支持的平台:AIX, BSD/OS, DG/UX, Free/Net/OpenBSD, GNU/Hurd, HPUX, Irix, Linux, MS-DOG, NeXT, OSF, SCO, Solaris, SunOS, Ultrix, Unixware, Windoze, and even Unicos on a Cray T 阅读全文
摘要:
LeakTracer-适用于Linux、Solaris和HP-UX下跟踪和分析C++程序中的内存泄漏,同时也可以将问题直接定位到源代码。简要介绍下LeakTracer:dmalloc 只能查看gcc编译之后的问题代码的内存地址,但是这往往不是你所想要看到的,LeakTracer提供了代码级别的提示。英文详细介绍如下:LeakTracer is a small tool I wrote when checking a C++ program for memoryleaks. I couldn't get dmalloc to display what I wanted, and I ju 阅读全文
摘要:
ccmalloc是常用的内存检测工具之一,适用于Linux环境。使用说明官方例子:例1:#include <stdio.h>void Leak(char *inStr){ char *str = (char *) malloc(strlen(inStr)); memcpy(str, inStr, strlen(inStr));}char *AvoidLeak(char *inStr){ char *str = (char *) malloc(strlen(inStr)); memcpy(str, inStr, strlen(inStr)); return str;}int main 阅读全文
摘要:
内存泄漏检测工具2007年08月08日1.ccmalloc-Linux和Solaris下对C和C++程序的简单的使用内存泄漏和malloc调试库。2.Dmalloc-Debug Malloc Library.3.Electric Fence-Linux分发版中由Bruce Perens编写的malloc()调试库。4.Leaky-Linux下检测内存泄漏的程序。5.LeakTracer-Linux、Solaris和HP-UX下跟踪和分析C++程序中的内存泄漏。6.MEMWATCH-由Johan Lindh编写,是一个开放源代码C语言内存错误检测工具,主要是通过gcc的precessor来进行。 阅读全文
摘要:
内存对齐分配策略(含位域模式)1:内存对齐定义: 现在使用的计算机中内存空间都是按照字节划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但是实际上计算机系统对于基本数据类型在内存中的存放位置都有限制,要求这些数据存储首地址是某个数K的倍数,这样各种基本数据类型在内存冲就是按照一定的规则排列的,而不是一个紧挨着一个排放,这就是内存对齐。对齐模数: 内存对齐中指定的对齐数值K成为对齐模数(Alignment Modulus)。当一种类型S的对齐模数与另一种类型T的对齐模数的比值是大于1的整数,我们就称类型S的对齐要求比T强(严格),而称T比S弱(宽松)。2:内存对齐的好处: 内存对 阅读全文
摘要:
c++构造函数详解2009-08-21 14:07:44标签:代码示例构造函数c++原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/194307 c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初学者有所帮助。 c++类的构造函数详解一、 构造函数是干什么的classCounter{public: // 类Counter 阅读全文
摘要:
深入理解include预编译原理2011-06-25 16:24:53标签:重复包含头文件staticinclude预编译原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/596179 你了解 #include 某个 .h 文件后,编译器做了哪些操作么? 你清楚为什么在 .h文件中定义函数实现的话需要在函数前面加上 static 修饰么?你知道 #ifndef……#define……#endif 这种防止头文件重复包含的精髓所在么?本文就是来探讨这些问题,并给出我的理解和 阅读全文
摘要:
一个项目经理的经验总结本人做项目经理工作多年,感到做这个工作最要紧的就是要明白什么是因地制宜、因势利导,只有最合适的,没有什么叫对的,什么叫错的,项目经理最忌讳的就是完美主义倾向,尤其是做技术人员出身的,喜欢寻找标准答案,耽误了工作进度,也迷茫了自己。以下是本人一些做项目的个人体会,写出来供大家指点,在讨论过程中共同提高水平。项目开始阶段是一个最重要的阶段。项目经理在接手一个新项目的时候,首先要尽可能地多从各个方面了解项目的情况,如: 1.这个项目是什么项目,具体大概做什么事情,是谁提出来的,目的是解决什么问题。在国内很多客户都很不成熟的情况下,千万不要根据项目的名称望文生义地去想象项目的目. 阅读全文
摘要:
考考你:根据结构体变量地址反推结构体首地址2011-07-21 16:51:38标签:结构体首地址container_ofoffsetof偏移原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/619824 最近在看《Linux内核设计与实现》这本书,感觉写得非常棒,看第6章《内核数据结构》的时候,遇到两个非常牛B的宏,据此简单地设计一个考题,以便分析它们。 【题目】: 根据一个结构体某成员的名称和地址,以及结构体的类型,计算出该结构体对象的首地址。 【例如】:stru. 阅读全文
摘要:
c++异常处理机制示例及讲解2009-08-14 17:26:56标签:c++try异常catchthrow原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/191881 这两天我写了一个测试c++异常处理机制的例子,感觉有很好的示范作用,在此贴出来,给c++异常处理的初学者入门。本文后附有c++异常的知识普及,有兴趣者也可以看看。 下面的代码直接贴到你的console工程中,可以运行调试看看效果,并分析c++的异常机制。#include"stdafx.h&q 阅读全文