我用OpenMP实现了一个C++的多线程程序。
现在的版本中,跑了一段时间后会出现如下错误。
terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check: __n (which is 21) >= this->size() (which is 0)
Aborted (core dumped)
每次不一定是21,其他数字(9,25)之类的数字也出现过。
我现在头疼的是程序很大,调试起来很幸苦。是否有办法能在出现这种错误的时候告诉我是运行到哪一行的时候出错的?
比如在
A函数的第5行调用函数B,在B函数的第18行调用函数C,在C函数的第7行,出现上面的越界错误。
谢谢。
--
FROM 162.238.157.*