广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >利用Debug调试代码解决0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突问题
  • 690
分享到

利用Debug调试代码解决0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突问题

摘要

VS2019利用Debug调试代码解决0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突之前一直是使用release发布代码模

VS2019利用Debug调试代码解决0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突
之前一直是使用release发布代码模式进行程序编译,前天突然出现这个问题:

0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突

查找资料发现大概率是出现了空指针。没有判断指针是否为空就进行后续操作导致的错误,但是release模式并没有提示问题出现在哪里,只是显示程序崩掉,并且给你错误信息,查找资料后发现Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用,但是会忽略调试信息,这不利于我们进行程序调试。(所以我只凭借经验进行初步调试,但是效率很低也没有解决实际问题)

而debug配置能够包含调试信息,并且不作任何优化,便于程序员调试程序。

这就方便我们进行程序的调试和断点设置,设置了断点就可以看到所有变量的信息。就方便我们找到问题出现在了哪里。

果然,当我将配置改为debug后,运行程序,就会自动显示下图所示地方发生错误:为nullptr,空指针。那么问题就显而易见了。

在这里插入图片描述

但是我在上句语句中已经获得了pGalvanometer对象指针,这里不应该是nullptr。所以我在该位置设置断点,运行后,发现hr不为S_OK,而是显示加载有问题,那么很显然问题出在我加载外部组件COM中了。

在这里插入图片描述

但是我并没有改变COM组件的加载代码,于是认为可能组件注册出现问题。于是我重新注册了一下COM组件。

在这里插入图片描述

问题成功解决!

该次经历给我的经验就是在编写调试代码时要及时切换为Debug模式,因为Debug会保留调试信息,而且代码是原汁原味的,不会做任何改变,也方便我们进行调试。我本身并不是计算机专业,所以这些很基础的经验对我来说也帮助甚大。

到此这篇关于利用Debug调试代码解决0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突问题的文章就介绍到这了,更多相关Debug调试代码解决0xC0000005内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 利用Debug调试代码解决0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突问题

本文链接: https://www.lsjlt.com/news/199079.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作