Emacs / gud-gdb:在失败时显示断言位置

时间:2011-10-21 22:46:32

标签: emacs gdb assert gud

当我的代码中的断言失败时,我从gdb获得这样的回溯:

(gdb) bt
#0  0x00007ffff455b3a5 in __GI_raise (sig=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00007ffff455eb0b in __GI_abort () at abort.c:92
#2  0x00007ffff4553d4d in __GI___assert_fail (
    assertion=0x123136d "<some failed test>", file=<optimized out>, 
    line=1573, function=<optimized out>) at assert.c:81
#3  <the actual place in my code where I called assert>
    ...

因此,为了达到实际的失败点,我必须去'up <RET> <RET> <RET>',这似乎有点低效。有没有办法配置gdb自动转到堆栈中的#3?我特别感兴趣在emacs中运行gdb,所以如果有一种方法可以配置gud来实现它,那也可以。

1 个答案:

答案 0 :(得分:0)

  

我必须去'up <RET> <RET> <RET>'

您可以改为fr 3

  

有没有办法配置gdb自动转到堆栈中的#3?

我不相信。