【问题标题】:Unhandled exception at 0x6c70f2ca in xxx.exe 0xC0000005: Access violation reading location 0xcdcdcdf1 how to debug this?xxx.exe 0xC0000005 中 0x6c70f2ca 处未处理的异常:访问冲突读取位置 0xcdcdcdf1 如何调试?
【发布时间】:2010-07-22 12:57:09
【问题描述】:

我有在 Visual Studio 2010 中编译的 c 应用程序
我在我的一个函数中遇到了这个错误 一般来说,我该如何调试这种异常?
该函数来自 dll,其他函数工作但不是这个。

【问题讨论】:

  • 您编写的代码远远不够。还值得注意的是,此异常是 Windows 结构化异常,而不是 C++ 异常。
  • 那么,当您在调试器下运行应用程序时会发生什么?

标签: c++ visual-studio exception-handling


【解决方案1】:

调试内存分配器用 0xcdcdcdcd 填充新分配的内存。看起来您已经分配了一些内存,仅将低字节设置为 0xf1 (241),并尝试在该位置取消引用一个四字节指针。没有看到代码,我能辨别的就这么多了。

【讨论】:

  • 他没有“将低字节设置为 0xf1”,他有一个未初始化的结构指针(因此为 0xcdcdcdcd),然后他正在访问结构中 0x24 处的成员。
【解决方案2】:

在尝试取消引用未初始化的指针时最有可能发生错误。所以:

  1. 在警告级别开启时重新编译 最大 (4)。查看警告。 你会发现列出了本地 没有声明的变量 初始化(包括指针)。
  2. 检查您传递给函数的参数(尤其是指针/引用参数)。检查它们的初始化。

【讨论】:

    猜你喜欢
    • 2018-12-05
    • 2014-10-26
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多