C++
Unix中的系統(“暫停”)?
我通常使用調試器,
cgdb
所以幸運的是system
,直到現在我才需要求助於調試呼叫。我有一個大約需要 30 分鐘才能載入的二進製文件,
gdb
並且此後調試器經常崩潰,這可能是由於符號數量非常多。這使我的正常工作流程(載入gdb
、添加斷點、辨識問題變數等)難以為繼。在 Windows 中,此時我將開始在我的程式碼中添加大量
cout
和system("pause")
(窮人的斷點)語句;但是我如何在類似 Unix 的環境中做到這一點?
你可能想讀 from
cin
來得到一個窮人的pause
——它會等你輸入一個Enter
,而不是在你喝咖啡的時候恢復(就像sleep()
這樣)。
我有時會求助於這個
#define BRK() do { printf("%s %d\n", __FILE__, __LINE__); getchar(); } while (0) ... BRK(); // Stop and wait for enter
此外,功能檢測可能會有所幫助:GCC 允許掛鉤到每個功能進入/退出,請參閱https://stackoverflow.com/questions/2281739/automatically-adding-enter-exit-function-logs-to-a-project