我有一个 Qt 应用程序,我已将其添加为~/.config/openbox/autostart.sh
这样:
(sleep 5 && /home/user/UI/UI) &
当我从终端启动 Openbox 时,Qt 应用程序打开为一个不可用的灰色框。如果我在 Openbox 上启动 xterm,然后手动启动 Qt 应用程序,它就可以正常工作。我究竟做错了什么?
答案1
在这种情况下,跟踪程序执行会很有帮助。 strace 和 gdb 是可用于此目的的两个工具:
- 使用strace 记录系统调用,使用
-o file
将日志写入文件。这将显示程序在执行系统调用时何时挂起 - 使用 gdb 附加到正在运行的进程(通过
-p pid
),并检查所有线程的堆栈跟踪
这可能会让您了解进程挂起的原因。