我被要求调查我们计划中发生的访问冲突,我几乎没有任何信息可以解决。
以下是访问冲突
Access violation at address BC004DC2. Execution of address BC004DC2
我想知道是否有人可以提供有关此类访问违规的信息,特别是“地址的执行”。部分。
因为它不是
Access violation at address XXXX in module 'YYYY.exe'. Read of Address ZZZZ
我不知道我应该寻找什么样的东西。
答案 0 :(得分:4)
这意味着指令指针位于没有PAGE_EXECUTE
保护的地址。这通常是因为您正在尝试执行数据。
这种错误最常发生在内存损坏中。您已损坏堆或堆栈。或者您正在使用一个陈旧的指针指向已释放的内存,然后由其他一些代码重用。
通过查看调用堆栈并计算出如何到达这个执行点来调试它。无论包含哪个数据结构,您执行的地址都是无效的。然后追溯看它是如何有效的。