我正在編寫一個程序,對我的同事編寫的代碼運行一些單元測試。我正在使用Google C++ testing framework。我運行一個產生3個線程的函數,然後運行30秒。運行後,程序以狀態0退出。這顯然不是預期的行爲。我知道它並沒有讓它變得更遠,因爲我在下一個直接行中寫了一個cout語句。C++程序意外退出,我該如何使用gdb進行調試?
我的問題是,什麼是最好的方式去調試這與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;
您確定退出代碼0是錯誤嗎? – 2010-09-30 13:19:48
你可以發佈你的代碼嗎?幫助會更容易。 – 2010-09-30 13:19:55
爲什麼exacty不能以0退出?你的意思是程序不會退出它的主要0?在這種情況下,exit(0)被稱爲某處..在那裏放一個斷點,我會說。 – stijn 2010-09-30 13:20:11