这在某种程度上与Gdb设置覆盖登录应该覆盖gdb.txt正确吗?有关。
假设我正在运行某个应用程序的会话。例如,让我再举一次qbittorrent的例子。
在这之前我们分享了跑步的方式-
$ gdb qbittorrent
(gdb) set logging overwrite on
(gdb) set logging on
(gdb) set pagination 0
(gdb) run我知道的一种方法是优雅地退出应用程序,但有时应用程序挂起/花费太多时间,或者根本没有响应。
然后剩下的唯一选项是使用CTRL+C,如果我正确理解它将杀死底层应用程序,在我们的示例qbittorrent中,它可以通过以下方式退出gdb
(gdb) quit是否还有其他方式退出应用程序,仍然让gdb会话继续运行,或者唯一的方法是我前面提到的粗糙的方法。
AFAI知道杀死应用程序进程应该是最后的解决方案,而不是第一个解决方案。
发布于 2017-10-19 15:02:31
你可以用信号来做这个。在启动程序之前,设置USR1或USR2以在不影响程序的情况下破坏gdb:
handle SIGUSR1 nopass然后您可以运行您的程序,当您需要停止它时,使用适当的(子) pid从另一个shell运行kill -USR1。gdb将暂停应用程序,然后可以添加断点、检查状态等,如果需要,可以使用cont继续执行。
https://unix.stackexchange.com/questions/399148
复制相似问题