如何调试启动时挂起的程序?

如何调试启动时挂起的程序?

我已经升级了 Slackware 14.2 安装,但 Scribus 停止工作:当我在终端中启动它时,它只是挂起,什么也没有发生 - 即使只是查询帮助或版本(scribus -hscribus -v)。

我真的不知道从哪里开始调试这个问题,我认为无论软件如何,它实际上都是相同的,因此通用问题:如何调试启动时挂起的程序?

就我的具体情况而言,我尝试了两个不同的版本(slonly 和 slacky),结果相同,ldd /usr/bin/scribus没有显示任何丢失的符号(在这种情况下,无论如何我都会预期崩溃,而不是冻结?),删除并~/.scribus/没有帮助。

答案1

根据 tk421 在评论中的建议,我在以下位置启动了 Scribus strace :

$ strace scribus

它挂在了(如果我没记错的话)

read(9, "We don't accept clients while"..., 64) = 64

我在另一个程序上注意到同样的问题,在strace.

谷歌搜索“我们不接受客户”导致xfsm-manager.c :

        *error = "We don't accept clients while in CheckPoint/Shutdown state!";

这让我认为在昨天两次尝试挂起到磁盘后 XFCE 可能处于错误状态,因此我决定重新启动计算机。

重新启动后,Scribus 和其他程序都可以工作。

相关内容