我正在编写一个程序,该程序对我的同事编写的代码运行一些单元测试。我正在使用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;