怎么利用Debug调试代码解决0xC0000005错误
导读:本文共1253.5字符,通常情况下阅读需要4分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: VS2019利用Debug调试代码解决0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突之前一直是使用release发布代码模式进行程序编译,前天突然出现这个问题:0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突查找资料发现大概率是出现了空指针。没有判断指针是否为空就进行后续操作导致的错误... ...
目录
(为您整理了一些要点),点击可以直达。VS2019利用Debug调试代码解决0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突
之前一直是使用release发布代码模式进行程序编译,前天突然出现这个问题:
0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突
查找资料发现大概率是出现了空指针。没有判断指针是否为空就进行后续操作导致的错误,但是release模式并没有提示问题出现在哪里,只是显示程序崩掉,并且给你错误信息,查找资料后发现Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用,但是会忽略调试信息,这不利于我们进行程序调试。(所以我只凭借经验进行初步调试,但是效率很低也没有解决实际问题)
而debug配置能够包含调试信息,并且不作任何优化,便于程序员调试程序。
这就方便我们进行程序的调试和断点设置,设置了断点就可以看到所有变量的信息。就方便我们找到问题出现在了哪里。
果然,当我将配置改为debug后,运行程序,就会自动显示下图所示地方发生错误:为nullptr,空指针。那么问题就显而易见了。
但是我在上句语句中已经获得了pGalvanometer
对象指针,这里不应该是nullptr。所以我在该位置设置断点,运行后,发现hr
不为S_OK
,而是显示加载有问题,那么很显然问题出在我加载外部组件COM中了。
但是我并没有改变COM组件的加载代码,于是认为可能组件注册出现问题。于是我重新注册了一下COM组件。
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
怎么利用Debug调试代码解决0xC0000005错误的详细内容,希望对您有所帮助,信息来源于网络。