C++ 无法检查lldb中的std::string变量

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++,但我假设如果使用

当我尝试使用LLDB检查std::string变量时,得到“error:summary string parsing error”

#包括
#包括
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