variables名称与GDBdebugging器冲突

我正在Linux上用GDBdebugging一个C ++程序,我需要在程序运行时看到一个成员variables的值。 不幸的是,成员variables名为list ,恰好是一个GDB关键字。 所以当我尝试:

print m_operations.m_data[10].m_data.list

我得到…

A syntax error in expression, near list'.

我尝试了各种各样的事情来向GDB表明我正在input一个文字expression式,比如在variables名称周围放置双引号或者单引号,但是这只会导致更多的语法错误。 我查看了GDB手册,找不到任何解决办法。 我无法重命名成员variables,因为我没有被授权修改该类。 此外, list是一个C ++对象,而不是一个普通的整数或POD,所以我不能简单地使用x关键字来检查那里的内存…至less不是花费一些严肃的时间来解密原始二进制代表的东西。

那么,有什么build议来解决这个问题?

问题不是你认为它是 – 如果我调试下面的代码:

 int main() { int list = 666; while( list ) { list--; } } 

我可以打破第三线,说:

 (gdb) print list 

这给了我:

 $1 = 666 

您尝试打印的表达式一定有其他错误。 您是否尝试过使用GUI调试器,如DDD ,这将允许您通过单击鼠标来选择要打印的内容?

这很可能是GDB (或可能在GCC )中的一个错误。

首先尝试最新的GDB (7.0.1)。

如果失败,尝试创建一个简单的独立测试用例,并在GDB bugzilla中提交一个bug。 如果你这样做, 一定要告诉哪个版本的GCC被用来编译你的测试。