目前,它适用于Linux的唯一。 DBGMEM是根据GNU宽通用公共许可证的条款发布
该工具可帮助您找到问题,如
  1。内存泄漏
  2。堆内存损坏
  3。误用,非法参数选择标准库函数。
  4。堆栈损坏
  5。使用释放或未初始化的堆内存。
  6。让您延长刀具,检查额外的API的参数
该工具覆盖,以增加其功能GLIBC内存分配函数,内存和字符串处理函数。
DBGMEM不需要任何改动你的程序,虽然你可能想改变你的程序才能使用一些高级的功能。
DBGMEM是C和C ++程序的一个开源的内存调试器,并在Linux操作系统上运行,并在GNU宽通用公共许可证被释放。 DBGMEM增加了调试检查的glibc的标准库的一部分;它被实现为加载到调试进程的地址空间的共享库。
工具
DBGMEM具有几个存储器调试工具,每一个都可以被加载到调试程序;简单工具跟踪所有分配的存储块的,并增加了记帐信息,如堆栈在当块被分配成一个舞台标头之前的已分配的内存块的时间;它也增加了保护字之前和分配的块之后,简单的工具是最好的用于检测内存泄漏问题;作为竞技场头可以由正在被调试的程序遭到损坏。在检查了保留所有记账信息,从堆栈中一个匿名内存映射文件;这使得该工具更强大的承受内存泄漏。检验工具还增加了能够快速查找信息包含在该堆块中的指针值任何堆块;检查工具将参数共同字符串和存储器操作功能,并检查可能的堆栈通过这些功能砸验证。
操作模式
你可以用调试器中运行大多数程序的是;该工具不需要调试的程序与任何特定的库链接;该工具是一个被装入是受DLL注入的技术中的方式来检查一个进程的地址空间的共享库。动态连接器的LD_PRELOAD功能是用来加载第一共享库,其他库之前加载工具;内存分配和字符串处理函数被截获,并首先从工具库中调用;这使得增加的检查工具。在调试过程中的原始报告写的是终止调试过程后进一步处理的运行时间;扩充的报告增加了象征性的函数名堆栈中所含的原始报告的痕迹。 gdb调试器是用来把数字地址到符号地址的原始报告进一步处理过程中
功能:
- 在内存泄漏;这既适用于检查工具和简单的工具。该工具同时跟踪每个堆分配的块与在该块被分配到时采取的堆栈跟踪;另外一个整数标签保持与每个分配,此值跟踪一个逻辑段/`一代“特点的块被分配的时间。这一信息的报告总是在生产过程中退出,或者当用户请求。这些信息有助于发现内存泄漏情况和原因。
- 使用的未初始化堆内存或释放堆内存;这既适用于检查工具和简单的工具。该工具将所有新分配的内存字节值0xDD和所有释放的内存,以字节值0xEE;使用这些值通常会导致程序出错,如果这个内存区域包含了一个指针,然后用非关联值0xDDDDDDDD指针会导致崩溃。
- 在堆内存损坏;这既适用于检查工具和简单的工具。该工具检查内存和覆盖承销通过将内存前缀和后缀各堆块上;如果更改后缀的值,那么堆覆盖/包销检测。
- 这适用于'''检查工具'''只;中的glibc和字符串处理函数的内存拷贝/ GLIBC的移动功能误操作;通过这些检查功能的工具上得到共同的标准库函数第一遍堆栈损坏,检查该功能将不覆盖现有参数堆块;它也检查调用线程的堆栈将不被破坏。
什么在此版本中是新的:
- 请现在得到CFLAGS环境变量
- 在建dbgmem库-ldl选项
- 共享库现在放到LIB / $(使用uname -r)目录,glibc的是结婚的内核版本。
- 修正编译在某些系统(配置步骤)
- 添加选项来运行脚本(-m - 只生成堆栈跟踪的一些代)
什么是1.9.1版本,新的:
- 请脚本更新,现在尝试检测要求建设置;仍然没有现在该怎么办的automake虽然
- 在C模式的GCC 2.9.6编译错误固定;海湾合作委员会仍对C ++内部错误崩溃模式建
- 添加选项-g(禁止检查的malloc配对/新/新[]和自由/删除/删除[]在C ++模式)
在什么1.7版是新的:
- 在添加选项-F跟随fork和exec调用(如在叉/ EXEC)
- 现在,打印出来的调试过程中的命令行报告文件的标题。
- 在映射文件名现在包括PID。
- 在默认情况下删除原始报表文件;有太多的人;
- 的sprintf的所有用途改变的snprintf
评论没有发现