0

所以我有来自 Eigen 库的这个矩阵。

Eigen::MatrixXd

它充满了数据,是 4x3900 点。它用于具有以下几行的函数中:

现在这组代码中甚至没有使用矩阵,作为参考,它被称为modelPointCloud。使用 GDB,我逐步浏览了图像中的线条。对于workIndexandtid线,矩阵的大小是正确的(即 4x3900)。但是当我进入下一行时idTableLock

现在正因为如此,我得到了这个错误:

在此处输入图像描述

在这条线上:

这是有道理的,因为矩阵不再是正确的大小。

现在其他线程正在运行,但没有人应该有权访问此数据类型。有谁知道为什么会这样?为什么会是那条改变矩阵的特定线?

4

1 回答 1

1

我的猜测是,这与 Eigen 无关。对我来说,这听起来像是内存损坏。您可能不会通过 modelPointCloud 变量直接访问内存,但可能会写入保存矩阵大小的内存。这些类型的错误很难调试。您很可能在某处使用了越界索引。看看关于这个主题的其他帖子。

于 2012-10-24T18:40:03.157 回答