访问冲突 - 地址执行

Cla*_*son 2 delphi access-violation delphi-10-seattle

我被要求调查我们的程序中发生的访问冲突,但我没有什么信息可以处理。

这是访问冲突

Access violation at address BC004DC2. Execution of address BC004DC2
Run Code Online (Sandbox Code Playgroud)

我想知道是否有人可以提供有关此类访问冲突的信息,特别是“地址执行”部分。

既然它不是

Access violation at address XXXX in module 'YYYY.exe'. Read of Address ZZZZ
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*nan 5

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

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

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