用clang++编译使用了string类型的代码时,再用lldb调试时,无法查看string变量的值。

例如这段代码:

// test.cpp
#include <string>

int main(int argc, char const *argv[]) {
    std::string a = "hello";
    std::string b = "world";
    return 0;
}

编译这段代码:clang++ test.cpp -g

调试:lldb a.out

在第4行加入断点,运行到定义a时,查看其值p a会报错:

error: incomplete type 'string' (aka 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >') where a complete type is requ
ired

note: forward declaration of 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >'
error: 1 errors parsing expression

解决办法:安装libstdc++6-5-dbg