21

在使用 GDB 进行调试时,如何检查当前停止的行号?我原以为这很明显(也许确实如此),但我在GDB Cheat Sheet上看不到它。

4

2 回答 2

36

一些挖掘揭示了以下方法:

  1. frame: 这个命令正是我想要的。输出如下:

    (gdb) frame
    #0  MyDialog::on_saveButton_clicked (this=0x72bf9e0) at src/ui/dialog/MyDialog.cxx:86
    86          _item->save();
    (gdb) 
    
  2. wherebt(相同的效果):这会打印出调用堆栈,并在当前行结束。

  3. list *$pc:这不会告诉您确切的行,但它会打印出周围的行,当前行位于中心。
于 2013-05-20T19:53:22.887 回答
0

x/i $eip
eip(rip) 指向下一条指令

于 2021-03-28T16:11:38.317 回答