我正在嘗試使用Qt Creator編寫我的第一個Linux應用程序。有時,在調試過程中,我正在編寫導致我的應用程序進入某種無限循環的代碼。Kubuntu在調試時繁忙的過程
這會導致我的KDE會話凍結。使用調試器或任何其他方式來停止/暫停進程似乎是不可能的。幾分鐘後,桌面會話自動終止,從而阻止重新啓動整個PC。
那麼,如何調試在Linux下瘋狂的進程呢?爲什麼它會阻止整個桌面和Qt Creator IDE,我怎樣才能防止這種情況發生?
我正在嘗試使用Qt Creator編寫我的第一個Linux應用程序。有時,在調試過程中,我正在編寫導致我的應用程序進入某種無限循環的代碼。Kubuntu在調試時繁忙的過程
這會導致我的KDE會話凍結。使用調試器或任何其他方式來停止/暫停進程似乎是不可能的。幾分鐘後,桌面會話自動終止,從而阻止重新啓動整個PC。
那麼,如何調試在Linux下瘋狂的進程呢?爲什麼它會阻止整個桌面和Qt Creator IDE,我怎樣才能防止這種情況發生?
有了這幾個信息,我會說QtCreator使用GDB,並確保GDB做得很好。 通常情況下,您的應用程序是在Linux分時計劃和Ubuntu將在一段時間後停止您的過程,這個時間取決於您的PC(內存,nbr cpu-core)的容量。 請記住,如果您的應用程序啓動實時線程並且將100%使用您的PC的所有內核,則凍結是正常的,但即使您在這種情況下,linux也保留了一些μs來運行其他代碼(例如系統碼殺吧)感謝的/ proc/sys目錄/內核/ 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)
希望這會幫助你 !