All the test cases in TestDataFormatterStdUniquePtr were failing. My std::unique_ptr layout is:
(std::unique_ptr<int, std::default_delete<int> >) iup = { (std::__uniq_ptr_impl<int, std::default_delete<int> >) _M_t = { (std::tuple<int *, std::default_delete<int> >) _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 = 0x0000000010041c20 } } } } } It is showing "std::tuple<int *, std::default_delete<int> >) _M_t" instead of "std::_Tuple_impl<0, int *, std::default_delete<int> >". Em 27/02/2018 19:34, Greg Clayton escreveu: 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@lists.llvm.org><mailto:lldb-dev@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@lists.llvm.org><mailto:lldb-dev@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<http://www.eldorado.org.br> +55 19 3757 3201 / +55 19 9 8336 5553 _______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org<mailto:lldb-dev@lists.llvm.org> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev _______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org<mailto:lldb-dev@lists.llvm.org> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev -- Alexandre Yukio Yamashita (DSB) Instituto de Pesquisas Eldorado www.eldorado.org.br<http://www.eldorado.org.br> +55 19 3757 3201 / +55 19 9 8336 5553
_______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev