随笔分类 -  C++ Memory

上一页 1 2 3 4 5 6 ··· 8 下一页
摘要:breakpad是Google开源的一套跨平台工具,用于dump的处理。很全的一套东西,我这里只简单涉及breakpad客户端,不涉及纯文本符号生成,不涉及dump解析。 一、使用 最简单的是使用进程内dump捕获,使用者只需要跟ExceptionHandler打交道,在自己的程序里定义一个Exce 阅读全文
posted @ 2017-06-14 22:24 findumars 阅读(502) 评论(0) 推荐(0) 编辑
摘要:程序异常崩溃,多数是有内存访问异常引起。为定位崩溃位置通常考虑加强内存访问控制,如此有必要进行内存可用性判断,从《Windows核心编程》中看到内存指针的可用性判断方法,感觉还不错,此处记录下。 判断内存指针的可用性,是通过判断指针所指向的虚拟内存页面的状态和属性来实现的。Windows提供了相关的 阅读全文
posted @ 2017-05-22 21:53 findumars 阅读(6547) 评论(0) 推荐(0) 编辑
摘要:PAGE_NOACCESS 禁止写入执行读取查看进程内存区域能发现,NOACCESS属性的内存页面都是FREE状态的(未提交使用的内存区域),只有内存区域最后的0x7FFE1000-0x7FFF0000之间的60K内存区域状态是Reserve。(保留了,不让使用...)PAGE_READONLY P 阅读全文
posted @ 2017-05-22 18:16 findumars 阅读(6231) 评论(0) 推荐(0) 编辑
摘要:HUSTOJ的Windows版评判内核(一) 作者:游蓝海 个人主页:http://blog.csdn.net/you_lan_hai 2013.4.9 注:最新版本项目地址:https://github.com/NsLib/FreeJudger。新版FreeJudger,跟我之前写的这个已经完全不 阅读全文
posted @ 2017-04-26 18:00 findumars 阅读(408) 评论(0) 推荐(0) 编辑
摘要:C/C++浮点数在内存中的存储方式 任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100。则在Intel CPU架构的系统中,存放方式为 10000100(低地址单元) 00000100(高地址单元),因为Intel CPU 阅读全文
posted @ 2017-04-14 23:50 findumars 阅读(349) 评论(0) 推荐(0) 编辑
摘要:1.概述 联合体union的定义方式与结构体一样,但是二者有根本区别。 在结构中各成员有各自的内存空间,一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度。 2.联合体长度 在The C Programming Language里面 阅读全文
posted @ 2017-02-20 00:08 findumars 阅读(2079) 评论(0) 推荐(0) 编辑
摘要:new和delete必须成对出现吗?【网上集合贴+个人总结】 1.从内存泄露与否的角度考虑 new 和 delete不一定要成对出現。理论上是這樣的。但是从习惯上來說,new delete成對出現是一個好的習慣。爲什麽說不一定要成對出現呢? 这个问题在csdn上有一個牛人写过很长的文章,不知道有沒有 阅读全文
posted @ 2017-02-20 00:06 findumars 阅读(749) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/SunWentao/archive/2008/11/03/1325687.html 阅读全文
posted @ 2017-02-17 01:00 findumars 阅读(720) 评论(0) 推荐(0) 编辑
摘要:Wrote by mutouyun. (http://darkc.at/cppdepend/) Wrote by mutouyun. (http://darkc.at/cppdepend/) 去年6月份的时候,CppDepend的一位技术社区经理(technical community manage 阅读全文
posted @ 2017-02-07 21:36 findumars 阅读(2081) 评论(0) 推荐(0) 编辑
摘要:注意不要说类的大小,是类的对象的大小. 首先,类的大小是什么?确切的说,类只是一个类型定义,它是没有大小可言的。 用sizeof运算符对一个类型名操作,得到的是具有该类型实体的大小。 如果 Class A; A obj; 那么sizeof(A)==sizeof(obj) 那么sizeof(A)的大小 阅读全文
posted @ 2017-02-07 18:35 findumars 阅读(527) 评论(0) 推荐(0) 编辑
摘要:How to Capture the Integer-Divide-By-Zero Error in C++? MANUAL CAPTURE The simple and straightforward method is to check it manually if possible. The 阅读全文
posted @ 2017-02-06 21:29 findumars 阅读(1128) 评论(0) 推荐(0) 编辑
摘要:讨论一 什么是野指针? 一个母亲有两个小孩(两个指针),一个在厨房,一个在卧室,(属于不同的代码块,其生存期不同)母亲让在厨房的小孩带一块蛋糕(指针指向的对象)给在卧室的小孩,这样在卧室的孩子才肯写作业。但这个在厨房的小孩比较淘气,他在走出厨房时自己将蛋糕吃了,没能带出来。而在卧室的没有吃到蛋糕,所 阅读全文
posted @ 2017-01-30 18:29 findumars 阅读(954) 评论(0) 推荐(0) 编辑
摘要:最近在做程序异常时堆栈信息获取相关工作,上一篇文章成功的在程序creash时写下了dump文件,而有些情况写dump文件是 不可以的,比如在jni开发时,C++只做底层处理,而整个项目是android工程,这个时候dump文件没有了优势,那么只能在程序 creash时把内存信息打印出来,获取输出到文 阅读全文
posted @ 2017-01-21 07:22 findumars 阅读(3575) 评论(0) 推荐(0) 编辑
摘要:前言在产品的实际应用环境中,如果我们的程序在客户那里出现了问题,例如程序异常了,而这个时候的现象又不能还原或者很难还原重现,那么只有使用dump文件来保存程序的当前运行信息,例如调用堆栈等,同时使用符号文件来定位问题了;这里主要讲解使用dbghelp库来生成输出dump文件,同时使用符号文件和win 阅读全文
posted @ 2017-01-06 00:09 findumars 阅读(763) 评论(0) 推荐(0) 编辑
摘要:根据《Windows核心编程》得知:X86操作系统提供每个程序最多只有4G的虚拟内存,其中2G虚拟内存提供给系统用(具体用来干什么还待考察),还有2G的内存留给用户使用。那这2G内存能拿来干嘛呢?首先给你介绍程序内存的5大区:栈区,堆区,全局区(静态区),文字常量区,程序代码区。这5大区就只能可怜的 阅读全文
posted @ 2017-01-05 21:49 findumars 阅读(2064) 评论(0) 推荐(0) 编辑
摘要:Memory Ordering Background 很久很久很久以前,CPU忠厚老实,一条一条指令的执行我们给它的程序,规规矩矩的进行计算和内存的存取。 很久很久以前, CPU学会了Out-Of-Order,CPU有了Cache,但一切都工作的很好,就像很久很久很久以前一样,而且工作效率得到了很大 阅读全文
posted @ 2017-01-05 17:01 findumars 阅读(718) 评论(0) 推荐(0) 编辑
摘要:Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind遵守GNU通用公共许可证条款,是一款自由软件。到3.3.0版本为止,Valgrind支持x86、x86-64以及PowerPC上的Linux。除此之外,还有一些其它非正式支持的类Unix平台(如FreeBSD 阅读全文
posted @ 2017-01-05 16:52 findumars 阅读(1209) 评论(0) 推荐(0) 编辑
摘要:作者:rendao.org,版权声明,转载必须征得同意。 内存越界,变量被篡改 memset时长度参数超出了数组长度,但memset当时并不会报错,而是操作了不应该操作的内存,导致变量被无端篡改 还可能导致内存越界的函数有memset、memcpy、memmove、strcpy、strncpy、st 阅读全文
posted @ 2017-01-05 06:06 findumars 阅读(2606) 评论(0) 推荐(0) 编辑
摘要:C语言程序的内存布局 一:C语言程序的存储区域 C语言编写的程序经过编绎-链接后,将形成一个统一的文件,它由几个部分组成,在程序运行时又会产生几个其他部分,各个部分代表了不同的存储区域: 1.代码段(Code or Text): 代码段由程序中的机器码组成。在C语言中,程序语句进行编译后,形成机器代 阅读全文
posted @ 2016-12-08 21:41 findumars 阅读(562) 评论(1) 推荐(0) 编辑
摘要:Cppcheck is an analysis tool for C/C++code. Unlike C/C++ compilers and many other analysis tools, it doesn’t detect syntax errors. Cppcheck only detec 阅读全文
posted @ 2016-12-08 00:54 findumars 阅读(1142) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 8 下一页