我有一个计算机器人手雅可比行列式的实现,我使用 boost 来使用线程构建雅可比行列式。直到昨天它还工作正常,我没有更改有关这部分的代码中的任何内容,今天突然出现断言错误,我不知道如何解决。
这是崩溃的代码部分,我已经调试了代码,有时当索引 i 等于 2 时崩溃,有时当索引 i 等于 3 时崩溃。
int K = Matrices.size();
std::vector<HandJacobian> PartialJ(K);
std::vector<boost::thread *> TH(PartialJ.size());
for(int i = 0; i < K; i++){
TH[i] = new boost::thread (&HandJacobian::computeHandJacobian,&PartialJ.at(i),Object,World_reference,Contacts.at(i),Matrices.at(i));
}
断言错误:
Assertion failed: (index >= 0 && index < size()), function operator[], file DenseCoeffsBase.h, line 410.
该项目基于 C++,是在 Mac Intelchip 上使用 cmake 编译的。
没关系,按照关于NDEBUG的这个答案,我在CMakelist文件中添加了以下语句,它再次工作了。
set(CMAKE_BUILD_TYPE RelWithDebInfo)