我正在尝试使用 Qt Creator 编写我的第一个 Linux 应用程序。有时,在调试过程中,我编写的代码会导致我的应用程序进入某种无限循环。
这会导致我的 KDE 会话冻结。使用调试器或任何其他方式停止/暂停进程似乎是不可能的。几分钟后,桌面会话会自动终止,这会阻止重新启动整个 PC。
那么如何调试在 Linux 下疯狂的进程呢?为什么它会阻止整个桌面和 Qt Creator IDE,我该如何防止这种情况发生?
我正在尝试使用 Qt Creator 编写我的第一个 Linux 应用程序。有时,在调试过程中,我编写的代码会导致我的应用程序进入某种无限循环。
这会导致我的 KDE 会话冻结。使用调试器或任何其他方式停止/暂停进程似乎是不可能的。几分钟后,桌面会话会自动终止,这会阻止重新启动整个 PC。
那么如何调试在 Linux 下疯狂的进程呢?为什么它会阻止整个桌面和 Qt Creator IDE,我该如何防止这种情况发生?
有了这几个信息,我会说 QtCreator 使用 GDB 并确保 GDB 做得很好。通常你的应用程序处于 linux 分时调度中,Ubuntu 会在一段时间后停止你的进程,这个时间段取决于你的 PC 的容量(内存,nbr cpu-core)。请记住,如果您的应用程序启动实时线程并将 100% 使用您 PC 的所有内核,则冻结是正常的,但即使您在这种情况下,linux 也保留了一些 µs 来运行其他代码(例如系统代码杀死它)感谢/proc/sys/kernel/sched_rt_runtime_us ...
如果行为类似于 KUBUNTU 错误,我建议您查看系统日志文件:
/var/log/syslog
~/.xsession-errors
/var/log/Xorg.0.log (for the current session)
/var/log/Xorg.0.log.old (for previous session)
/var/log/?dm.log (gdm for gnome, kdm for KDE)
希望对你有帮助 !