[lldb-dev] "error: summary string parsing error" on Fedora 30

Greg Clayton via lldb-dev lldb-dev at lists.llvm.org
Fri Jul 19 16:08:51 PDT 2019


Sounds like the compiler omitted the type info for std::string. Try "-glldb" in your compiler flags. This tunes debug info for LLDB. A lot of compilers will try to omit types from debug info if the type doesn't originate in the current executable. std::string would be one of those classes. If that flag doesn't work, then you might try -fno-limit-debug-info.

Let me know if that helps!

> On Jul 18, 2019, at 5:45 PM, Bob Eastbrook <baconeater789 at gmail.com> wrote:
> 
> Thanks for the info.  "frame var --raw msg" is empty on my Fedora 30
> system, but populated correctly on Ubuntu 19.04.  E.g., on Fedora 30:
> 
> (lldb) frame var --raw msg
> (std::string) msg = {}
> 
> I compiled with "clang++ -g main.cpp".  Nothing fancy.  Installed
> Clang with "dnf install clang".  Again, nothing fancy.
> 
> I'm a LLVM newb.  Can you point me in the right direction?
> 
> 
> 
> 
> On Fri, Jul 12, 2019 at 1:56 PM Greg Clayton <clayborg at gmail.com> wrote:
>> 
>> We have a summary provider for std::string that is built into LLDB that must not be working with the C++ runtime you are using. The current summary string that is used is in source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp in LoadLibStdcppFormatters:
>> 
>>  lldb::TypeSummaryImplSP std_string_summary_sp(
>>      new StringSummaryFormat(stl_summary_flags, "${var._M_dataplus._M_p}"));
>> 
>> So do a "frame var --raw msg" and see what the members of your std::string look like. I am guessing you won't see "_M_dataplus" or "_M_p" in there. The "${var" means your std::string variable, and we are trying to access "msg._M_dataplus._M_p" to see what the string looks like.
>> 
>> 
>> On Jun 24, 2019, at 10:26 PM, Bob Eastbrook via lldb-dev <lldb-dev at lists.llvm.org> wrote:
>> 
>> With Clang 8.0.0 and libstd++ 9.1.1 on Fedora 30 x86_64, I get this
>> error from LLDB when trying to see the value of a string:
>> 
>> "error: summary string parsing error"
>> 
>> The code is simply:
>> 
>> std::string msg{"foo bar baz"};
>> 
>> With libcxx 8.0.0, instead of the above error, I simply see "??" when
>> inspecting the msg variable.
>> 
>> All of the above works fine for me in Ubuntu 19.04. I only have the
>> problem with Fedora 30.  Tried in both CLion and VS Code.
>> 
>> How should I troubleshoot this?  Could I be missing a package?
>> _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>> 
>> 



More information about the lldb-dev mailing list