随笔分类 -  C++ Memory

摘要:看到一篇关于内存池技术的介绍文章,受益匪浅,转贴至此。 原贴地址:http://www.ibm.com/developerworks/cn/linux/l-cn-ppp/index6.html 6.1 自定义内存池性能优化的原理 如前所述,读者已经了解到"堆"和"栈"的区别。而在编程实践中,不可避免 阅读全文
posted @ 2016-12-07 22:14 findumars 阅读(18326) 评论(0) 推荐(1) 编辑
摘要:加入下列宏定义: [cpp] view plain copy #ifdef _DEBUG #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__) #else #define DEBUG_CLIENTBLOCK #endif 阅读全文
posted @ 2016-11-06 07:30 findumars 阅读(886) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/u011012932/article/details/52778149 阅读全文
posted @ 2016-10-11 16:24 findumars 阅读(314) 评论(0) 推荐(0) 编辑
摘要:前言在产品的实际应用环境中,如果我们的程序在客户那里出现了问题,例如程序异常了,而这个时候的现象又不能还原或者很难还原重现,那么只有使用dump文件来保存程序的当前运行信息,例如调用堆栈等,同时使用符号文件来定位问题了;这里主要讲解使用dbghelp库来生成输出dump文件,同时使用符号文件和win 阅读全文
posted @ 2016-10-05 06:29 findumars 阅读(473) 评论(0) 推荐(0) 编辑
摘要:摘要: 本文主要对Windows内存管理中的堆管理技术进行讨论,并简要介绍了堆的创建、内存块的分配与再分配、堆的撤销以及new和delete操作符的使用等内容。 关键词: 堆;堆管理 1 引言 在大多数Windows应用程序设计中,都几乎不可避免的要对内存进行操作和管理。在进行大尺寸内存的动态分配时 阅读全文
posted @ 2016-10-03 23:21 findumars 阅读(2493) 评论(0) 推荐(0) 编辑
摘要:[导语] 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放 阅读全文
posted @ 2016-10-03 23:20 findumars 阅读(33812) 评论(3) 推荐(7) 编辑
摘要:在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识。 接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的relea 阅读全文
posted @ 2016-10-03 23:19 findumars 阅读(1322) 评论(0) 推荐(0) 编辑
摘要:1. 内存分配方式 1.1 内存分配的几种方式 (1) 从静态存储区域分配。 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 (2) 在栈上创建 阅读全文
posted @ 2016-10-03 23:16 findumars 阅读(1325) 评论(0) 推荐(0) 编辑
摘要:CrashRpt.dll用来在应用程序出现异常crash时,捕获到错误。 并收集出错信息: MiniDump文件、硬件信息、系统信息、出错信息、进程信息、服务信息、驱动信息、启动信息、软件列表、端口信息、磁盘分区、WinSock LSP、IE插件、网卡信息。 使用方法 在程序每个线程最初位置调用In 阅读全文
posted @ 2016-10-03 06:43 findumars 阅读(1131) 评论(0) 推荐(0) 编辑
摘要:Description of CSeException CSeException class is based on CException class provided by MFC. I overwrite some of useful methods, but it is working sam 阅读全文
posted @ 2016-10-03 06:32 findumars 阅读(589) 评论(0) 推荐(0) 编辑
摘要:一、非MFC程序可以用以下方法检测内存泄露: 1.程序开始包含如下定义: [cpp] view plain copy print? #ifdef _DEBUG #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__) #els 阅读全文
posted @ 2016-10-03 06:27 findumars 阅读(854) 评论(0) 推荐(0) 编辑
摘要:调试技巧 —— 如何利用windbg + dump + map分析程序异常 逗比汪星人2011-09-04上传 逗比汪星人2011-09-04上传 调试技巧 —— 如何利用windbg + dump + map分析程序异常 http://blog.csdn.net/wangningyu/articl 阅读全文
posted @ 2016-10-03 06:07 findumars 阅读(640) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/goforwardtostep/article/details/56304285 阅读全文
posted @ 2016-09-17 06:59 findumars 阅读(319) 评论(0) 推荐(0) 编辑
摘要:我的环境是: XP SP2 . VS2003 最近在一个项目中,程序退出后都出现内存泄漏: 而且每次退出都是一样的.泄漏的内存块都是98500. 解决方法: 1. 在程序开始启动的地方(足够前的地方,只要在泄漏的内存分配的前面)使用代码: _CrtSetBreakAlloc(98500); //98 阅读全文
posted @ 2016-09-14 03:50 findumars 阅读(3608) 评论(0) 推荐(0) 编辑
摘要:VLD简介 VLD使用 [cpp] view plain copy #include<vld.h> // 包含VLD的头文件 #include<stdlib.h> #include<stdio.h> void f() { int *p = new int(0x12345678); printf("p 阅读全文
posted @ 2016-09-14 03:46 findumars 阅读(1836) 评论(0) 推荐(0) 编辑
摘要:前言:通过drwtsn32、NTSD、CDB等调试工具生成Dump文件, drwtsn32存在的缺点虽然NTSD、CDB可以完全解决,但并不是所有的操作系统中都安装了NTSD、CDB等调试工具。了解了mini dump文件格式后,完全可以程序自动生成Dump文件。 本文主要讨论以下内容: 1、 运行 阅读全文
posted @ 2016-08-26 20:16 findumars 阅读(556) 评论(0) 推荐(0) 编辑
摘要:WIN32程序挂钩SetLastError,输出错误描述到控制台作者:徐灵甫 一、窗口模式应用程序(GUI)启用控制台的方法为: 二、挂钩API函数的简单方法为:1. DEBUG模式下,函数名值为指令“JMP函数体”的地址。指令格式为“E9 □□□□”,附带的参数为四字节表示的转移偏移量。因此“函数 阅读全文
posted @ 2016-08-26 18:57 findumars 阅读(292) 评论(0) 推荐(0) 编辑
摘要:1, 定义供应用程序使用的头文件//libmem.h#ifndef _LIBMEM_H_#define _LIBMEM_H_//声明自定义malloc及free函数extern void *my_malloc(unsigned int uSize, const char *pszFunc, unsi 阅读全文
posted @ 2016-08-26 18:48 findumars 阅读(3608) 评论(0) 推荐(0) 编辑
摘要:new / delete malloc / free CoTaskMemAlloc / CoTaskMemFree IMalloc::alloc / IMalloc/free GlobalAlloc / GlobalFree LocalAlloc / LocalFree HeapAlloc / He 阅读全文
posted @ 2016-08-26 18:47 findumars 阅读(433) 评论(0) 推荐(0) 编辑
摘要:一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分 阅读全文
posted @ 2016-08-26 17:48 findumars 阅读(2715) 评论(0) 推荐(0) 编辑