侧边栏壁纸
  • 累计撰写 73 篇文章
  • 累计创建 14 个标签
  • 累计收到 1 条评论

记录内存错误处理的方法

秋山人家
2019-10-26 / 0 评论 / 0 点赞 / 2,293 阅读 / 0 字
温馨提示:
本文最后更新于 2019-10-26,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

内存错误,如内存溢出、双重释放等问题。在C语言或者C++中,由于产生错误的地方和发生崩溃的地方往往不一致,这直接导致了追踪的难度。这里主要记录平时遇到的容易出现内存问题以及一般处理流程:

内存出现问题:
1.跨平台,如android32位和ios64位,在对long型数据进行处理时,容易发生错误,主要是long型指针,在ios平台long型指针是64位,如果将一个int型指针传入,会发生越界访问。而这个问题在android32位平台则不会出现异常。

2.传递参数时,注意传入的是对象,引用,还是指针。特别是传入对象和指针是具有明显区别的,有时传入对象,而对象本身没有拷贝构造,极容易发送多重释放。

通常处理办法: 1)对于内存错误问题,我认为其核心是缩小范围,逐步屏蔽代码,复现问题,最终定位问题发生点。 2)在处理内存错误时,还可以有一定的辅助手段,例如添加打印,添加打印这种方法主要用于不能在编译器进行debug的场景。如果能够在编译器进行debug,则通过编译器查看内存中的内容,逐步对比。

……
(后续继续补充)

0

评论区