#include <iostream>
#include <stdio.h>
#include <vector>
#include <string>
void testConst(std::vector<std::string> v1)
{
std::string& a = v1[0];
std::cout << a << "\n";
return;
}
int main()
{
std::string x1 = "abc";
std::string x2 = "def";
std::vector<std::string> v1;
v1.push_back(x1);
v1.push_back(x2);
testConst(v1);
return 0;
}
数据库:
b main.cpp:21
run
p *(v1._M_impl._M_start)
b main.cpp:10
c
p *(v1._M_impl._M_start)
在第 21 行,我可以得到正确的 v1[0],即“abc”;在第 10 行,我无法得到正确的 v1[0];
问题:在 gdb 中,如何在第 10 行获得正确的 v1[0]?
环境:红帽Linux环境。
谢谢