【问题标题】:Busy process in Kubuntu while debugging调试时Kubuntu中的繁忙进程
【发布时间】:2017-11-13 07:35:02
【问题描述】:
我正在尝试使用 Qt Creator 编写我的第一个 Linux 应用程序。有时,在调试过程中,我编写的代码会导致我的应用程序陷入某种无限循环。
这会导致我的 KDE 会话冻结。使用调试器或任何其他方式停止/暂停进程似乎是不可能的。几分钟后,桌面会话会自动终止,这会阻止重新启动整个 PC。
那么我该如何调试一个在 Linux 下疯狂的进程呢?为什么它会阻止整个桌面和 Qt Creator IDE,我该如何防止这种情况发生?
【问题讨论】:
标签:
c++
linux
debugging
qt-creator
busy-loop
【解决方案1】:
有了这几个信息,我会说 QtCreator 使用 GDB 并确保 GDB 做得很好。
通常你的应用程序处于 linux 分时调度中,Ubuntu 会在一段时间后停止你的进程,这个时间段取决于你的 PC 的容量(内存,nbr cpu-core)。
请记住,如果您的应用程序启动实时线程并将 100% 使用您 PC 的所有内核,则冻结是正常的,但即使您在这种情况下,linux 也会保留一些 µs 来运行其他代码(例如系统代码杀死它)感谢 /proc/sys/kernel/sched_rt_runtime_us...
如果行为类似于 KUBUNTU 的 bug,建议你查看系统日志文件:
/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)
希望对你有帮助!