从gdb设置std :: string变量值?

Sta*_*dog 17 c++ gdb stdstring

是否有可能......当调试器在断点处停止时,修改std :: string变量的值而不诉诸于调整当前缓冲区的内存映像等黑客攻击?

例如"set var mystring ="hello world"

Chr*_*ung 27

试试这个(测试并适合我):

call mystring.assign("hello world")
Run Code Online (Sandbox Code Playgroud)

关键是,不是直接修改内存,而是调用对象的函数来改变其状态.碰巧std::basic_string有一个成员函数被调用assign来完成工作.

  • 您可以使用 p mystring.operator=("hello world") 显式调用重载运算符,这是执行 mystring = "hello world" 的详细方式,即使不存在其他函数重载也应该可以工作。 (2认同)