C++

Unix中的系統(“暫停”)?

  • January 10, 2015

我通常使用調試器,cgdb所以幸運的是system,直到現在我才需要求助於調試呼叫。

我有一個大約需要 30 分鐘才能載入的二進製文件,gdb並且此後調試器經常崩潰,這可能是由於符號數量非常多。這使我的正常工作流程(載入gdb、添加斷點、辨識問題變數等)難以為繼。

在 Windows 中,此時我將開始在我的程式碼中添加大量coutsystem("pause")(窮人的斷點)語句;但是我如何在類似 Unix 的環境中做到這一點?

你可能想讀 fromcin來得到一個窮人的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

引用自:https://unix.stackexchange.com/questions/154473