【发布时间】:2016-06-02 01:34:50
【问题描述】:
我有一个“有时”没有破坏递归并最终导致堆栈溢出的算法。现在我想调试这种情况。 gdb 将我直接指向我覆盖堆栈边界的行,但无法获得堆栈跟踪,因为 gdb 需要无穷无尽的时间来展开堆栈并将其显示在 ddd 中。
我现在只想减少堆栈大小以更早地获得损坏。所以我需要一种方法来减少我正在运行的任务的堆栈。没有涉及线程,所以应该没什么大不了的。
但我不知道 gdb 本身是否有一个选项来操作堆栈(大小)本身,或者我需要在我的 prog 开始时以编程方式更改大小,或者我可以从 os 命令行( linux )减小大小启动调试会话后。
如果gdb有这样的选项,如果调用树达到最大深度,也许也可以停止。
【问题讨论】:
标签: c++ linux recursion gdb stack-overflow