【发布时间】:2010-02-11 20:18:50
【问题描述】:
我正在 Linux 上使用 GDB 调试 C++ 程序,我需要在程序运行时查看成员变量的值。不幸的是,成员变量被命名为list,它恰好是一个 GDB 关键字。所以当我尝试时:
print m_operations.m_data[10].m_data.list
我明白了……
A syntax error in expression, near list'.
我尝试了各种方法来向 GDB 表明我正在输入文字表达式,例如在变量名周围加上双引号或单引号,但这只会导致更多的语法错误。我查看了 GDB 手册,找不到任何解决此问题的方法。我无法重命名成员变量,因为我无权修改该类。此外,list 是一个 C++ 对象,而不是常规整数或 POD,所以我不能简单地使用 x 关键字来检查那里的内存......至少在不花一些时间来破译原始二进制文件的情况下是这样的代表。
那么,有什么解决这个问题的建议吗?
【问题讨论】:
-
你能粘贴更多你的 gdb 交互吗?我只能用明显错误的 C++ 语法重现你的错误。
-
m_data(第二个)的类型是什么?