[lldb-dev] Issue: print std unique pointer

Greg Clayton via lldb-dev lldb-dev at lists.llvm.org
Tue Feb 27 14:34:44 PST 2018


Then the question becomes how can we identify the STL that is being used correctly so we can do the right thing. I worry that if std::unique_ptr isn't working that many many other STL things won't work as well. We are tuned for a specific STL

> On Feb 27, 2018, at 2:12 PM, Pavel Labath via lldb-dev <lldb-dev at lists.llvm.org> wrote:
> 
> This probably isn't arch-dependent. More likely you just have a
> different version of libstdc++. Can you share how the std::unique_ptr
> layout looks like for you. This is how my std::unique_ptr looks like
> (from libstdc++.so.6.0.22):
> 
> (lldb) fr var X -R -T
> (std::unique_ptr<int, std::default_delete<int> >) X = {
>  (std::unique_ptr<int, std::default_delete<int> >::__tuple_type) _M_t = {
>    (std::_Tuple_impl<0, int *, std::default_delete<int> >)
> std::_Tuple_impl<0, int *, std::default_delete<int> > = {
>      (std::_Head_base<0, int *, false>) std::_Head_base<0, int *, false> = {
>        (int *) _M_head_impl = 0x0000555555768c20
>      }
>    }
>  }
> }
> 
> On 27 February 2018 at 12:26, Alexandre Yukio Yamashita via lldb-dev
> <lldb-dev at lists.llvm.org> wrote:
>> Hi,
>> 
>> LLDB is printing a empty value for unique pointers in PowerPC.
>> And I am investigating a solution for this problem.
>> 
>> The problem occurs because the ptr_obj variable has a empty value in
>> Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp:73.
>> 
>> I could solve it, changing this line
>> Plugins/Language/CPlusPlus/LibStdcppTuple.cpp:68
>> from:
>>     if (name_str.startswith("std::_Tuple_impl<")) {
>> to:
>>     if (name_str.startswith("std::_Tuple_impl<") ||
>> name_str.startswith("_M_t") ) {
>> 
>> After this change, the test TestDataFormatterStdUniquePtr pass with success.
>> And the unique pointers are displayed correctly.
>> 
>> Is there a better solution for that?
>> 
>> Thanks.
>> Alexandre.
>> 
>> 
>> --
>> Alexandre Yukio Yamashita (DSB)
>> Instituto de Pesquisas Eldorado
>> www.eldorado.org.br
>> +55 19 3757 3201 / +55 19 9 8336 5553
>> _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev



More information about the lldb-dev mailing list