Я пишу программу, которая запускает некоторые модульные тесты для кода, написанного моими коллегами.Я использую 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;