0x523d14cf (msvcr100d.dll) 处未处理的异常?

Posted

技术标签:

【中文标题】0x523d14cf (msvcr100d.dll) 处未处理的异常?【英文标题】:Unhandled exception at 0x523d14cf (msvcr100d.dll)? 【发布时间】:2010-11-22 02:55:11 【问题描述】:

IntellitracTCPIP.exe 中 0x523d14cf (msvcr100d.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0x00000008。

什么会导致这个错误?以及如何解决它

【问题讨论】:

资料不够,能给我们一个测试用例吗? 或者重现问题的最小代码sn-p? 【参考方案1】:

您尝试读取的地址表明您有一个由许多 4 字节整数组成的结构。您有一个指向该结构类型的指针,但该指针为空。你的程序想要读取第三个——第三个整数字段的偏移量是 8。将它添加到空指针地址 0,你得到 0x00000008。 (它可以是更小或更大类型的结构,甚至是一个数组,但我的经验告诉我,最有可能的是 4 字节整数。)

错误信息表明有问题的代码行属于 msvcr100d.dll。那不是你的代码;您可能已将空指针传递给某个 C 运行时函数。该函数假定您提供了一个有效指针并尝试读取结构的第三个字段,但由于该指针无效,操作系统拦截了读取尝试并引发了异常。

在错误发生之前找到程序中的最后一行代码。为此,您可以使用 调用堆栈 查看程序为到达崩溃点而进行的函数调用链。向下查看列表,直到找到您的功能之一。你看到任何指针吗?当您调用该函数时,您能保证它们都是有效的吗?如果不是,那么你确定你应该调用那个函数吗?要么确保指针有效,要么避免使用空指针调用函数。

【讨论】:

【参考方案2】:
0xC0000005: Access violation reading location 0x00000008. 

这表明一个错误的指针。没有指针显示指向0x00000008 这样的低地址。您没有提供足够的信息,请尝试在调试器下运行程序。

【讨论】:

以上是关于0x523d14cf (msvcr100d.dll) 处未处理的异常?的主要内容,如果未能解决你的问题,请参考以下文章

0x5919c8ec (msvcr100d.dll) 处的第一次机会异常:0xC0000005:访问冲突读取位置 0xfeeefeee

未找到 MSVCP100D.dll,[关闭]

vs2010运行总是提示:(msvcr90d.dll) 处最可能的异常: 0xC0000005,怎么回事

2>MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _calloc 已经在 LIBCMTD.lib(dbgcalloc.obj) 中定义(示例代码

C++ 应用程序(调试版)包含 VS 运行时库 msvcr90.dll 和 msvcr90d.dll

为啥我的发布版本仍在寻找调试 DLL (MSVCR110D.dll)?