Eigen::Matrix 在调试器中显示错误值

Eigen::Matrix shows wrong values in debugger

提问人:Thomas 提问时间:4/24/2017 最后编辑:CommunityThomas 更新时间:4/24/2017 访问量:414

问:

在调试使用 Eigen 库(版本 3.3.3)的代码时,即使对于最简单的代码,我也会得到矩阵中包含的值不正确的值:

    Eigen::Vector2d test(1.0, -120.0);

我得到:

weird doubles...

这在我的代码中始终如一地发生。

我是在 MSVC2010 和 QtCreator 调试器中构建为 RelWithDebugInfo 的代码。

这个人似乎也有同样的问题,不幸的是,没有人有答案。

谢谢!

C++ visual-studio-2010 调试 qt-creator 特征

评论

2赞 Avi Ginsburg 4/24/2017
可能是由于优化。RelWithDebugInfo 对于调试来说并不“完美”。
1赞 Mudi 4/24/2017
您是否正在运行已编译代码的发布版或调试版?
1赞 chtz 4/25/2017
特别是,对于非常简单的代码,如果编译器发现根本没有使用该变量,则它可能根本不分配实际内存(或初始化它)。尝试在纯“调试”模式下编译。对于较大的项目,请尝试仅启用轻度优化进行编译(我不知道如何为此配置 MSVC)。
1赞 chtz 4/25/2017
另一种可能性(有时)是将变量存储在变量中。但是,当然,对于生产代码,您也应该避免这种情况。volatile
0赞 Thomas 4/25/2017
@AviGinsburg:不幸的是,由于我无法控制的原因,我无法在调试模式下运行项目......RelWithDebugInf 是我会得到的最好的。例如,我希望我可以手动关闭 Eigen 中的优化

答: 暂无答案