【问题标题】:Which line exception occured inside a library图书馆内发生了哪一行异常
【发布时间】:2015-03-13 06:42:00
【问题描述】:

我使用armadillo 库。在某处我得到了这个异常:

error: Mat::init(): size is fixed and hence cannot be changed

terminate called after throwing an instance of 'std::logic_error'
  what():  Mat::init(): size is fixed and hence cannot be changed
Aborted (core dumped)

我知道为什么。但我不知道在哪里。

有什么方法可以获取导致这个问题的线路吗? valgrind 或任何其他工具可以做到这一点吗?

更新:

编译代码:

g++ -g  -Wall -Wfatal-errors -Wextra -std=c++11 
            main.cpp -lboost_filesystem -lboost_system

【问题讨论】:

  • 您是否尝试过查看核心文件中的回溯?输出的最后一行是core dumped
  • @RomanK,怎么做?顺便说一句,我使用 g++ 编译。我不使用 IDE。
  • 要知道在哪里,调试它...添加一些断点...
  • @ar2015 - 运行gdb,将二进制文件的路径和核心文件的路径作为参数。如果您有一个线程,请点击bt。确保您已使用调试符号进行编译。那里有任意数量的gdb primers。
  • 核心文件是什么意思?我输入了gdb a.out,它进入了gdb命令行,我不知道该怎么办?

标签: c++ exception c++11 valgrind armadillo


【解决方案1】:

您能否发布错误出现的代码的小sn-p? 我有类似的错误,但不记得是什么原因造成的,但尝试将命令的结果存储在其他变量中并检查它。并输入“cout”来查找导致错误的语句。

【讨论】:

  • 据我记忆,是这样的fixed_vector=normal_vector_different_size。但是我已经修复了它,所以我没有代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
  • 2016-02-05
相关资源
最近更新 更多