[lldb-dev] Issue: print std unique pointer

Pavel Labath via lldb-dev lldb-dev at lists.llvm.org
Tue Feb 27 14:12:27 PST 2018


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


More information about the lldb-dev mailing list