记录内存错误处理的方法
内存错误,如内存溢出、双重释放等问题。在C语言或者C++中,由于产生错误的地方和发生崩溃的地方往往不一致,这直接导致了追踪的难度。这里主要记录平时遇到的容易出现内存问题以及一般处理流程:
内存出现问题:
1.跨平台,如android32位和ios64位,在对long型数据进行处理时,容易发生错误,主要是long型指针,在ios平台long型指针是64位,如果将一个int型指针传入,会发生越界访问。而这个问题在android32位平台则不会出现异常。
2.传递参数时,注意传入的是对象,引用,还是指针。特别是传入对象和指针是具有明显区别的,有时传入对象,而对象本身没有拷贝构造,极容易发送多重释放。
通常处理办法: 1)对于内存错误问题,我认为其核心是缩小范围,逐步屏蔽代码,复现问题,最终定位问题发生点。 2)在处理内存错误时,还可以有一定的辅助手段,例如添加打印,添加打印这种方法主要用于不能在编译器进行debug的场景。如果能够在编译器进行debug,则通过编译器查看内存中的内容,逐步对比。
……
(后续继续补充)
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 银河驿站
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果