gdb在调试期间跳回前一行

  • 本文关键字:一行 调试 gdb c++ gdb
  • 更新时间 :
  • 英文 :


当我输入"n"时,gdb将忽略第35行以下的所有行,并跳到上一行。

我已经通过添加-O0关闭了优化,但问题仍然存在。

Breakpoint 1, other_MAIT_create (max_deno=10, MAIT_node=0x7fffffffdad0, nume=9, deno=1024, output_site=0x7fffffffdb10, 
parent=0x7fffffffdaf0, MAIT_sign=3, save_num=0x7fffffffdab4) at create.cpp:33
33    clean_sign(MAIT_node);
(gdb) n
35    for(unsigned int i=max_deno-1;i>-1;i--)
(gdb) n
8     two_d_node node_split;
(gdb) n
7     node split_single;
(gdb) n
6     infor split_temp;
(gdb) n
93  }
(gdb) n
main (argc=1, argv=0x7fffffffdc98) at main.cpp:32
32    for(unsigned int i=2;i<number;i++)

max_deno=10

这看起来像是gdb在调用堆栈上对象的析构函数之前停止。

顺便说一下,只要iunsigned inti>-1就永远不可能是真的。也就是说,期望gdb向前移动到for循环的循环体是错误的,我们在您的文章中看到了它的第一行。

最新更新