【发布时间】: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。确保您已使用调试符号进行编译。那里有任意数量的gdbprimers。 -
核心文件是什么意思?我输入了
gdb a.out,它进入了gdb命令行,我不知道该怎么办?
标签: c++ exception c++11 valgrind armadillo