为什么gdb中的print命令为C ++ std :: strings返回 035?
说我有代码:
std::string str = "random";
function(str);
void function (std::string str)
{
std::cout << str << std::endl;
}
如果我在gdb中单步执行此代码,然后进入该函数并执行p str
,它将打印出类似这样的内容362241
但cout将在屏幕上打印正确的字符串random
。有没有人见过这个,如果是这样我该怎么办?我在gdb中使用错误的print命令还是与编译器如何解释字符串有关?
没有找到相关结果
已邀请:
5 个回复
磐乓铝举
和
启用STL漂亮的打印机):
附:您应该将字符串作为const引用传递给函数。
缕嚏冻
这是对
中原始数据字段的解释。要获取实际的字符串数据,我必须将
字段重新解释为指针:
拈吉勉犬姆
咖哀烈
我正在显示正确的信息:
唤副埂侧壬
库。