如何在GDB中自动继续断点



我正在调试linux内核模块。它导致死锁,我正试图找出原因。我用的是vmware + gdb。其思想是将函数挂钩并将日志回溯记录到文件中。我正在尝试以下内容:

(gdb) br _raw_spin_lock
Breakpoint 5 at 0xffffffff815eb700: file kernel/spinlock.c, line 136.
(gdb) commands 5
Type commands for breakpoint(s) 5, one per line.
End with a line saying just "end".
>silent
>bt
>continue
>end

continue在这里不起作用。如果我用echo 1代替bt,它就可以工作了。是否有方法记录每次调用函数时的信息?

谢谢。

很可能您正在点击gdb分页提示符。https://sourceware.org/gdb/onlinedocs/gdb/Screen-Size.html

在设置断点

之前运行此命令
set height 0

你没有说为什么不起作用。到底是哪里出了问题?

通常情况下,这类事情工作得很好。将"continue"放入断点命令中是我多年来经常做的事情。它不是没有问题(它会干扰"next"),但如果你只是做日志记录或类似的事情,它工作得很好。

一种猜测是"bt"出错了。这将导致命令中止,我相信,命令应该在断点处停止。那么问题来了,到底发出了什么错误消息?或者您正在点击分页。或者可能是我没有想到的其他事情:-)

如果是错误,一个可能的选择可能是限制回溯。

最新更新