gpt4 book ai didi

c++ - 调试 Armadillo 包的运行时错误

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:30 24 4
gpt4 key购买 nike

我正在使用 Armadillo C++ 库开发 Rcpp 包。但是,我发现调试 Armadillo 的任何运行时错误都非常麻烦。目前,我必须在每一行之后插入打印输出,以找出出现错误的行。 Armadillo 只会抛出如下错误:

error: subtraction: incompatible matrix dimensions: 756x1 and 26x1

并且它不提供任何有关行号的信息。使用 gdb 也不是特别有用,因为错误可能会在多次迭代后出现。有没有更好的方法来获取发生错误的行号。

最佳答案

我不知道 Rcpp 集成,但我使用 gdb 调试我的 Armadillo 代码。

只需确保您永远不会在代码中捕获任何异常,例如 std::logic_error。如果您随后从 gdb 中运行该程序,一旦发生错误,它就会中止,只需键入 bt,您就会得到一个很好的回溯跟踪,告诉您是哪一行出错了。然后您还可以轻松检查该堆栈框架中的变量值等。

您无需单步执行代码即可利用调试器的优势。

如果 Rcpp 不允许避免捕获该异常,您应该始终能够为您的代码编写一个不阻塞调试器的简单 C++ 测试程序。

关于c++ - 调试 Armadillo 包的运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22598942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com