van*_*nna 7 c++ stack-overflow monitoring callstack visual-studio-2008
有没有办法在 Visual Studio 中监视调用堆栈大小?运行时提供了一个调用堆栈窗口,但不显示堆栈的大小。我正在使用 C++ 并面临堆栈溢出问题。我知道我正在使用的一些递归函数可能有问题,但在解决这些问题之前,我想监视调用堆栈大小以查看发生了什么。
有以下几种方法:
@esp在监视窗口中观看来完成此操作。将其与流程开始时的 ESP 进行比较。请注意,堆栈通常是向后分配的,因此随着堆栈的增长,ESP 会变得越来越小。
在这里使用数据断点会很有帮助。无论您碰巧在代码中的哪个位置,只要您在正确的线程上都没有关系,请使用 Debug + New Breakpoint + New Data Breakpoint。在地址框中键入@esp - 250000. 按 F5 继续运行,当可用堆栈空间的四分之一被消耗时,它将在递归内部的某个地方中断。esp 的确切偏移量并不重要。