【发布时间】:2020-09-29 12:22:03
【问题描述】:
我的班级有 operator const char*() const { return "foo"; }。
我已经停止了 gdb 7.12.1-48.el7,其中变量 q 属于此类。
我输入p q.,当我按下键时,我会看到一个包含其所有方法和成员的完成列表,包括operator char const*。
但是,我收到了对这些命令的响应。
(gdb) p q.operator char const*()
Couldn't find method MyClass::operatorconst char *
(gdb) p q.operator char const*
There is no member or method named operatorconst char *.
(gdb) p q.(operator char const*)
A syntax error in expression, near `(operator char const*)'.
(gdb) p q.(operator char const*)()
A syntax error in expression, near `(operator char const*)()'.
关于如何调用此方法的任何想法?
【问题讨论】:
-
即使是 gdb 9.1 也在为此苦苦挣扎。我不相信有办法做到这一点。从历史上看,gdb 对 C++ 的了解总是很少。真的不能怪这个可怜的野兽。除了成熟的 C++ 编译器之外,任何东西都无法解析 C++ 的语法。
-
这能回答你的问题吗? calling operator<< in gdb 单引号似乎是关键。