同僚が作成したコードに対していくつかの単体テストを実行するプログラムを作成しています。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;