访问冲突 - 地址的执行

Access Violation - Execution of Address

我被要求调查在我们的程序中发生的访问冲突,我需要处理的信息很少。

这是访问冲突

Access violation at address BC004DC2. Execution of address BC004DC2

我想知道是否有人可以提供有关此类访问冲突的信息,特别是 'Execution of address' 部分。

因为它不是

Access violation at address XXXX in module 'YYYY.exe'. Read of Address ZZZZ

我不知道我应该找什么样的东西。

这意味着指令指针所在的地址没有PAGE_EXECUTE保护。这通常是因为您正在尝试执行数据。

这种错误最常见于内存损坏。您损坏了堆或堆栈。或者您正在使用指向已释放的内存的陈旧指针,然后由其他代码重新使用。

通过查看调用堆栈并弄清楚您是如何到达执行点的来对此进行调试的。任何包含您正在执行的地址的数据结构都是无效的。然后追溯,看看它如何有效。