在gdb中设置字符串

nig*_*ire 8 c++ string variables gdb setting

C++:

int main() 
    { 
    string a = "a"; 
    ... ... 
    }
Run Code Online (Sandbox Code Playgroud)

当我在gdb中调试时:

(gdb)set var a ="ok"
无效的强制转换

我运行程序并在字符串a初始化后暂停一个断点.我试图设置它的值,但它抱怨无效的演员.这个的正确语法是什么?

Joh*_*nck 16

你可以这样做:

call a.assign("ok")
Run Code Online (Sandbox Code Playgroud)

通过这种方式,GDB立刻意识到它需要调用一个函数(而不是你尝试使用什么都知道operator=),它知道什么函数调用(std::string::assign),它并不需要类型的所有转换(因为有超载的assign,其完全匹配).