首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当应用程序不响应时,如何优雅地退出在gdb中运行的应用程序。

当应用程序不响应时,如何优雅地退出在gdb中运行的应用程序。
EN

Unix & Linux用户
提问于 2017-10-19 14:50:32
回答 1查看 9.7K关注 0票数 2

这在某种程度上与Gdb设置覆盖登录应该覆盖gdb.txt正确吗?有关。

假设我正在运行某个应用程序的会话。例如,让我再举一次qbittorrent的例子。

在这之前我们分享了跑步的方式-

代码语言:javascript
复制
$ gdb qbittorrent 
(gdb) set logging overwrite on 
(gdb) set logging on 
(gdb) set pagination 0
(gdb) run

我知道的一种方法是优雅地退出应用程序,但有时应用程序挂起/花费太多时间,或者根本没有响应。

然后剩下的唯一选项是使用CTRL+C,如果我正确理解它将杀死底层应用程序,在我们的示例qbittorrent中,它可以通过以下方式退出gdb

代码语言:javascript
复制
(gdb) quit

是否还有其他方式退出应用程序,仍然让gdb会话继续运行,或者唯一的方法是我前面提到的粗糙的方法。

AFAI知道杀死应用程序进程应该是最后的解决方案,而不是第一个解决方案。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2017-10-19 15:02:31

你可以用信号来做这个。在启动程序之前,设置USR1USR2以在不影响程序的情况下破坏gdb

代码语言:javascript
复制
handle SIGUSR1 nopass

然后您可以运行您的程序,当您需要停止它时,使用适当的(子) pid从另一个shell运行kill -USR1gdb将暂停应用程序,然后可以添加断点、检查状态等,如果需要,可以使用cont继续执行。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/399148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档