为什么将const char*从gdb传递给返回字符串视图的函数与返回字符串的函数的行为不同

为什么将const char*从gdb传递给返回字符串视图的函数与返回字符串的函数的行为不同,gdb,string-view,Gdb,String View,我有一个关于gdb(版本8.3)行为的问题。 如果我使用gcc(9.2.1)和编译选项编译下面的示例代码,并运行以下命令对其进行调试 br main run p make_string("test") p make_string_view("test") 我观察到这两个函数的不同行为。返回字符串的打印 0x7ffff7a67780:test,而返回字符串视图的将打印0x7fffffff60:hßÿÿ。我不太明白为什么会发生这种情况,或者这是gdb中的一个

我有一个关于gdb(版本8.3)行为的问题。 如果我使用gcc(9.2.1)和编译选项编译下面的示例代码,并运行以下命令对其进行调试

br main
run
p make_string("test")
p make_string_view("test")
我观察到这两个函数的不同行为。返回字符串的打印
0x7ffff7a67780:test
,而返回字符串视图的将打印
0x7fffffff60:hßÿÿ
。我不太明白为什么会发生这种情况,或者这是gdb中的一个问题

#include <string>
#include <string_view>
#include <iostream>

std::string make_string(const char* c) {
  std::cout << (void *) c << " : " << c << std::endl;
  return {};
}

std::string_view make_string_view(const char* c) {
  std::cout << (void *) c << " : " << c << std::endl;
  return {};
}

int main() {
}

#包括
#包括
#包括
std::string make_string(const char*c){

std::我不能使用GDB-10.0复制此内容。请尝试更新的GDB版本?谢谢。已验证GDB-10.0修复了此问题。