2012-06-01 66 views
2

我有一個非常大的代碼,當我嘗試在codelite中運行它時,codelite界面變得無響應,我必須將其殺死。這通常發生在無限循環的情況下。使用gdb和codelite在C++中調試無限循環

我嘗試在代碼的多個位置放置斷點以找到問題,但至今沒有運氣。從開始運行程序開始,執行暫停。檢測這種無限循環的最佳方法是什麼? Codelite沒有「停止」按鈕AFAIK。

編輯: 我最終增加了很多的cout語句,並在終端而不是gdb運行可執行文件。這有助於在很長一段時間後找到程序正在執行的內容。

回答

2

最簡單的方法是運行一段時間的代碼,然後使用調試器暫停執行而不使用斷點。如果你幸運的話,調用堆棧應該指出你陷入困境的代碼位。

如果你沒有做到這一點,你將需要用日誌語句胡說你的代碼。

+0

你是什麼意思「暫停執行而不使用斷點」? – Ari

+2

在gdb上,您可以按Ctrl C暫停或暫停執行。 IDE通常有一個停止按鈕。 – doron

+0

謝謝。至少對我而言,Codelite IDE完全沒有響應,並且沒有啓用菜單或按鈕。 – Ari