首页 文章

断言失败特征调试模式

提问于
浏览
2

我突然意识到在使用调试模式(-g3 -DDEBUG)编译我的程序(使用Eigen)时,我得到运行时断言错误

Assertion failed: (v == T(Value)), function variable_if_dynamic, file /Users/vlad/eigen_3.2.2/Eigen/src/Core/util/XprHelper.h, line 53

我无法弄清楚这究竟发生在哪里以及原因 . 我也在我唯一使用Eigen成员的类中使用了 EIGEN_MAKE_ALIGNED_OPERATOR_NEW ,因为我认为它可能是一个对齐问题,但它仍然无法解决问题 . 有没有人碰到过这个?发布版本编译并运行得很好,断言仅在调试模式下出现 .

1 回答

  • 5

    这与对齐无关,但与编译时和运行时值之间的不匹配有关,这意味着您的代码中可能包含以下内容:

    Matrix<double,3,Dynamic> mat(4,5);
    

    其中运行时行数 4 与编译时行数 3 不匹配 . 调试器将帮助您找到有罪的线路 .

相关问题