2010-07-22 85 views
0

我有一个c应用程序即时编译在visual studio 2010
即时得到这个错误在我的一个功能 一般我怎么能调试这种异常?
该函数是从DLL,其他功能工作,但不是这一个。xxx.exe中的0x6c70f2ca未处理的异常0xC0000005:访问冲突读取位置0xcdcdcdf1如何调试?

+0

你已经产生了足够的代码。值得注意的是,这个异常是Windows结构化异常,而不是C++异常。 – Puppy 2010-07-22 13:19:32

+0

那么,在调试器下运行应用程序时会发生什么? – 2010-07-22 20:02:04

回答

1

当尝试解引用未初始化的指针时,最可能发生错误。因此:

  1. 重新编译,最大值为(4),最大警告级别为 。查看警告。 您会发现列出了本地 变量,这些变量在初始化时不包含 (包括指针)。
  2. 检查您传递给函数的参数(特别是指针/参考参数)。检查其初始化。
3

调试内存分配器用0xcdcdcdcd填充新分配的内存。看起来你已经分配了一些内存,只将低字节设置为0xf1(241),并试图在该位置释放一个4字节的指针。没有看到代码,这是我能看出的。

+0

+1,表示同意。读取未初始化的堆内存。 – 2010-07-22 13:40:25

+1

他没有'将低字节设置为0xf1',他得到了一个未初始化的结构指针(因此为0xcdcdcdcd),然后他正在访问结构中0x24的成员。 – 2010-07-22 14:19:03

相关问题