c++ - "Attempt to execute non-executable address"是什么意思?

标签 c++ windbg access-violation

我在我的 C++ 应用程序中看到访问冲突错误。在发生违规时将 Windbg 附加到进程并使用 !analyze 时,我发现访问违规是由于尝试执行不可执行的地址造成的。我知道导致此问题的正在执行的地址。什么可能导致此错误?代码中什么可能的错误会导致这种情况发生?我如何有效地调试它?

最佳答案

C++ 中出现此错误的两个常见原因是 1) 使用未初始化/已删除对象的虚函数和 2) 使用未初始化的函数指针。无论哪种情况,您都会有效地分支到随机地址。由于大多数内存未标记为可执行文件,因此您可能会被“尝试执行不可执行地址”阻止

关于c++ - "Attempt to execute non-executable address"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6895838/

相关文章:

c++ - 使用 Boost 线程监控对象队列

c++ - 用于解析和检查 C++ 的 Python 代码

c# - 使用 WinDBG 进行事后调试

windows - 如何关闭从 Excel-VBA 脚本调用的 .exe 的错误消息?

c++ - 终止线程 c++11 在读取时被阻塞

c++ - 当我离开 shift 超出 INT_MAX 时发生了什么?

debugging - WinDbg - 寻找 NullPointerException... - 下一步去哪里?

windbg - 如何安装正确版本的windbg?

从相机读取时 C++ OpenCV 0xC0000005 错误

c++ - 为什么更改 visual studio 版本后我的函数会崩溃?