我正面临一个堆栈损坏,它在 wWinMain
函数返回之前就断点了。任何人都可以建议我一种方法,或者一些关于如何调试堆栈损坏的提示吗? (最好在 winDbg 中)
我知道损坏发生在我用 masm 为我的程序编写的过程中,但堆栈在整个过程中似乎都很好。 rsp
寄存器在整个时间内拥有它所需要的一切..
最佳答案
按顺序执行:
- 使用高级警告进行编译,并修复大部分警告
- 对项目运行代码分析,并修复警告 - 特别是关于缓冲区/数组/堆栈等的警告。
- 如果损坏仍未修复,请减小函数大小(注释掉函数的上部或下部)。不要只是
return
- 损坏的堆栈缓冲区可能仍被分配 - 注释掉将从程序代码中省略坏堆栈。 - 重构
wWinMain
- 划分为子任务(函数)。其中一个函数会因为堆栈而失败,您将找到真正的问题。
关于c++ - 调试堆栈损坏方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30260951/