[英]C++ Program quits unexpectedly, how do I debug this with gdb?
我正在編寫一個程序,該程序在我的同事編寫的代碼上運行一些單元測試。 我正在使用Google C ++測試框架 。 我運行了一個產生3個線程的函數,然后運行了30秒鍾。 在運行之后,程序以狀態0退出。顯然,這不是預期的行為。 我知道它沒有任何作用,因為我在下一行直接輸入了cout語句。
我的問題是,使用gdb進行調試的最佳方法是什么? 這很困難,因為該程序沒有段錯誤或類似功能,它只會退出。 有沒有辦法掛斷出口電話,然后獲得長回溯?
謝謝您的幫助。
編輯:
cSystemCfg* pSystemCfg = new cSystemCfg();
std::cout << "Before runThing" << std::endl;
pSomething->runThing(&acq, pHwIf, pSystemCfg, pIf);
//Exits here, never gets to the next line
std::cout << "After runThing" << std::endl;
除了break exit
,您可能還需要在其他幾個地方設置斷點。 看看這個問題和答案 。
gdb中的一個簡單的break exit
命令應該停止程序,並允許您在程序調用任何線程exit
時檢查狀態。
當然,這是假定程序從被調用的exit
結束,而不是出於某些其他原因,例如abort
,斷言失敗,未處理的異常或從主程序返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.