GDB条件断点语法错误

时间:2014-06-18 17:05:00

标签: c++ debugging gdb assert

我试图弄清楚为什么我的C ++程序失败了一个断言。我想分析失败时的当前变量值,但程序在断言失败时退出,因此范围丢失。因此,我想设置一个条件断点,断言条件被否定。断言看起来像这样:

assert( AddrRange(pkt->getAddr(), 
                  pkt->getAddr() + pkt->getSize() - 1).isSubset(range) );

在GDB中,我这样做:

break filename.cc:linenum if (AddrRange(pkt->getAddr(), pkt->getAddr() + pkt->getSize() - 1).isSubset(range) == false )

但结果是:

A syntax error in expression, near `pkt->getAddr(), pkt->getAddr() + pkt->getSize() - 1).isSubset(range) == false )'.

我首先尝试创建断点然后使用cond,但是我得到了相同的语法错误。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我最终修改了代码并将函数调用返回值保存到bool,然后使用bool变量创建条件断点。