
内存
ZalGGboy
这个作者很懒,什么都没留下…
展开
-
重载operator new/delete/new[]/delete[]
https://blog.youkuaiyun.com/weixin_41256413/article/details/82950003此博客转载上面的博客,便于查看https://blog.youkuaiyun.com/hizhangyuping/article/details/80624506源码详解,读书万遍、其义自现http://www.cppblog.com/dawnbreak/articles...转载 2019-02-28 10:45:33 · 275 阅读 · 0 评论 -
重载new和delete来检测内存泄漏
1. 简述 内存泄漏属于资源泄漏的一种,百度百科将内存泄漏分为四种:常发性内存泄漏、偶发性内存泄漏、一次性内存泄漏和隐式内存泄漏。 常发性指:内存泄漏的代码会被多次执行到。偶发性指:内存泄漏的代码只有在特定的条件下才会执行到。一次性指:内存泄漏的代码只会被执行到一次。隐式指:程序在运行中不断的开辟内存,知道程序结束时才释放内存,本质上虽然没有内存泄漏,但是如果这个程序在连续运行很...原创 2019-02-28 14:39:07 · 1002 阅读 · 0 评论 -
内存泄漏详解
简介内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。内存泄漏缺陷具有隐蔽性、积累性的特征,比其他内存非法访问错误更难检测。因为内存泄漏的产生原因是内存块未被释放,属于遗漏型缺陷而不是过错型缺陷。此外,内存泄漏通常不会直接产生可观察的错误症状,而是逐渐积累,降低系统整体性能,极端的...原创 2019-02-26 12:00:02 · 789 阅读 · 0 评论 -
内存越界详解
内存越界是软件系统主要错误之一,其后果往往不可预料且非常严重。更麻烦的是,它出现的时机是随机的,表现出来的症状是随机的,而且造成的后果也是随机的,这会使程序员很难找出这些 Bug 的现象和本质之间的联系,从而给 Bug 的定位带来极大的困难。一般情况下,内存越界访问可分如下两种:读越界,即读了不属于自己的数据。如果所读的内存地址是无效的,程序立刻崩溃;如果所读内存地址是有效的,在读的时候不会马...原创 2019-02-26 12:01:33 · 6740 阅读 · 1 评论 -
如何在进程崩溃后打印堆栈并防止数据丢失
进程在运行过程中遇到逻辑错误, 比如除零, 空指针等等, 系统会触发一个软件中断.这个中断会以信号的方式通知进程, 这些信号的默认处理方式是结束进程.发生这种情况, 我们就认为进程崩溃了.进程崩溃后, 我们会希望知道它是为何崩溃的, 是哪个函数, 哪行代码引起的错误.另外, 在进程退出前, 我们还希望做一些善后处理, 比如把某些数据存入数据库, 等等.下面, 我会介绍一些技术来达成这...原创 2019-03-06 10:00:12 · 1608 阅读 · 0 评论 -
Android Tombstone(墓碑日志)解决步骤
最近在学习通过墓碑文件定位bug所在位置,网上浏览了很多的博客,大多数只能做到利用addr2line定位到行号但是对于大型项目,尤其是C++代码较多的情况下,很难去准确定位到内存越界、内存溢出等问题(全球性难题,没办法)。在这里整理一下,尽量给自己和大家提供一些路径:1. https://blog.youkuaiyun.com/Zhanganliu/article/details/87715961...原创 2019-03-07 11:32:28 · 5856 阅读 · 0 评论