C++ 无法检查lldb中的std::string变量
当我尝试使用LLDB检查std::string变量时,得到“error:summary string parsing error”C++ 无法检查lldb中的std::string变量,c++,clang,lldb,clang++,C++,Clang,Lldb,Clang++,当我尝试使用LLDB检查std::string变量时,得到“error:summary string parsing error” #包括 #包括 int main(){ std::字符串a{“123”}; std::cout尝试使用-fstandalone debug标志重新编译源代码。我今天使用lldb时遇到了同样的问题,当我尝试逐个字符访问字符串时,它抛出了一个错误,建议使用此标志编译。在我重新编译二进制文件后,lldb处理字符串很好 注意:我不确定此标志是否适用于g++,但我假设如果使用
#包括
#包括
int main(){
std::字符串a{“123”};
std::cout尝试使用-fstandalone debug
标志重新编译源代码。我今天使用lldb时遇到了同样的问题,当我尝试逐个字符访问字符串时,它抛出了一个错误,建议使用此标志编译。在我重新编译二进制文件后,lldb处理字符串很好
注意:我不确定此标志是否适用于g++
,但我假设如果使用lldb,则使用clang++
进行编译。即使更改变量名称,问题是否仍然存在?即使更改名称,问题仍然存在。frame variable-ra
会得到什么。这将显示std的实现细节LLDB应该有LIbc++和LIbSTDc++STD::string的内置格式,这取决于你使用的二进制链接是哪个C++库。所有这些都应该无缝地进行。当我写代码>帧变量-R a < /代码>时,我得到<代码>(STD::string)A= {}
answer应该可以解决您的问题。谢谢。添加-D\u GLIBCXX\u DEBUG
标志对我也有效。
Process 4492 stopped
* thread #1, name = 'main', stop reason = breakpoint 1.1
frame #0: 0x00005555555551e9 main`main at main.cpp:6:1
3
4 int main() {
5 std::string a{"123"};
-> 6 std::cout << a << std::endl;
7 return 0;
8 }
(lldb) v a
(std::string) a = error: summary string parsing error