最近在使用duilib开源库实现图片查看工具软件ImageViewer,调试时发现,程序刚启动时就访问了0xcdcdcdcd内存地址,触发内存访问违例,导致了软件崩溃。本文分享一下这一问题的排查过程。
1、问题描述
使用Visual Studio对ImageViewer程序进行Debug下的调试,结果还没弹出程序的主窗口,就报出了内存访问违例的提示,提示框如下:
提示在访问0xcdcdcdcd内存时产生了内存访问违例。以前我们多次讲过0xcccccccc、0xcdcdcdcd和0xfeeefeee这几个常见的特殊值,如下所示:
即本例中0xcdcdcdcd含义是:程序在Debug下运行时,Debug版本微软C++运行时库会将未初始化的堆内存中的内容都初始化为0xcdcdcdcd。所以在Debug下调试代码遇到这样的值,可能是因为申请的堆内存没有初始化引起的。
点击提示框中继续按钮,代码会中断在如下的代码处:
原文地址:https://blog.csdn.net/chenlycly
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。