您现在的位置是:首页 > 文章详情

空指针访问的陷阱

日期:2019-02-22点击:392

背景

之前用AddressSanitizer工具验证阿里云短视频SDK的稳定性时出现了一个崩溃问题,报错堆栈在一个空指针对象访问其成员函数处,但是从整体代码执行流程分析发现其对象指针一直是空的,诡异的是不使用工具运行时无论如何都不会崩溃。

ASAN工具报错发生在如下行,此处mAudioRenderServicePtr为NULL。

this->OnStop(false, mAudioRenderServicePtr->GetAddr());

下面对正常运行和工具调试出现的结果一致进行分析,以及延伸的讨论一下关于空指针访问的一些陷阱。

分析

空指针即未指向任何对象,于是从语言层面来讲在访问空指针时应该一定发生崩溃,但在多函数调用及参数传递过程中,以及C++语言的封装特性、编译器是否优化的情况下,则不一定发生崩溃或者崩溃延迟。

先看看Ge

原文链接:https://yq.aliyun.com/articles/691158
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章