Debugging 我可以让gdb/ddd快速跳到无限递归错误的开头吗?

Debugging 我可以让gdb/ddd快速跳到无限递归错误的开头吗?,debugging,recursion,gdb,segmentation-fault,Debugging,Recursion,Gdb,Segmentation Fault,如果我有一个无限递归bug,当我在ddd中发现这个bug时,需要很长时间才能从segfault生成回溯 如果a、b、c、等是函数且调用堆栈是 a b c c c c ... (thousands) ... c c (SIGSEGV) 或 生成相关堆栈跟踪可能需要几分钟的时间 如果我怀疑是这种情况,有没有一种方法可以让gdb/ddd快速跳到重复的开始,而不是等待它一路跟踪备份?在无限递归的情况下,您不必打印完整的回溯。您只需要一个例子就可以理解无限递归的原因。例如,可以使用以下命令打印10个最

如果我有一个无限递归bug,当我在ddd中发现这个bug时,需要很长时间才能从segfault生成回溯

如果a、b、c、等是函数且调用堆栈是

 a b c c c c ... (thousands) ... c c (SIGSEGV)

生成相关堆栈跟踪可能需要几分钟的时间


如果我怀疑是这种情况,有没有一种方法可以让gdb/ddd快速跳到重复的开始,而不是等待它一路跟踪备份?

在无限递归的情况下,您不必打印完整的回溯。您只需要一个例子就可以理解无限递归的原因。例如,可以使用以下命令打印10个最外层的帧:

(gdb) bt -10
要打印的确切帧数可能会有所不同,这取决于无限递归的开始位置

(gdb) bt -10