关于C ++:在gdb中设置字符串

setting strings in gdb

C ++:

1
2
3
4
5
int main()
    {
    string a ="a";
    ... ...
    }

当我在gdb中调试时:

(gdb) set var a ="ok"
Invalid cast

我运行程序并在初始化字符串a之后在断点处暂停。 我正在尝试设置其值,但是它抱怨转换无效。 正确的语法是什么?


你可以这样做:

1
call a.assign("ok")

这样,gdb立即知道它需要调用一个函数(而不是您尝试使用operator=进行的操作),它知道要调用的函数(std::string::assign),并且根本不需要转换类型( 因为存在assign的重载,它完全匹配)。