首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带条件断点的GDB特征调试失败

带条件断点的GDB特征调试失败
EN

Stack Overflow用户
提问于 2019-05-29 23:40:42
回答 1查看 164关注 0票数 2

我正在尝试使用Eigen对象上的条件断点来调试GDB。例如,当向量中的任何值都非零时,我想要中断。我会在GDB中这样做:

代码语言:javascript
复制
break cpp/File.cpp:143 if (v != 0).any()

然而,这不起作用。GDB提供了以下功能:

代码语言:javascript
复制
Could not find operator!=

即使这是完全有效的语法。此外,像这样的条件断点

代码语言:javascript
复制
break cpp/File.cpp:143 if v[0] != 0

在GDB中显示以下错误:

代码语言:javascript
复制
Error in testing breakpoint condition:
Couldn't get registers: No such process.
An error occurred while in a function called from GDB.
Evaluation of the expression containing the function
(Eigen::DenseCoeffsBase<Eigen::Array<int, 3, 1, 0, 3, 1>, 1>::operator[](long)) will be abandoned.
When the function is done executing, GDB will silently stop.

代码是用-O0 -g -fno-inline编译的。如何调试Eigen对象的内容?

EN

回答 1

Stack Overflow用户

发布于 2019-05-31 19:37:18

根据this question的说法,(有时) GDB似乎在重载操作符方面存在问题。您可以尝试以下方法之一:

代码语言:javascript
复制
if (! v.isZero())

if (! v.cwiseEqual(0).all()) 

而不是if v[0] != 0,你可以尝试其中的一个:

代码语言:javascript
复制
 if (v.data()[0] != 0)

 if (v.coeff(0) != 0)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56364205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档