If you are using GetPointeeData() it is a known bug in LLDB, which was resolved in r 161384
If that does not fix the issue, please do let us know with a reproduction case :-) Enrico Granata ✉ egranata@.com ✆ (408) 972-7683 On Aug 8, 2012, at 2:27 PM, Alexander Angriawan <[email protected]> wrote: > Attached. > But this doesn't work with global variables and I haven't had chance to look > at it. > > > Subject: Re: [lldb-dev] Formatter for std::shared_ptr<std::wstring> > From: [email protected] > Date: Wed, 8 Aug 2012 09:48:34 -0700 > CC: [email protected]; [email protected] > To: [email protected] > > Alexander, > feel free to share your script if you desire. > I can work on integrating it into mainline LLDB. > > Thanks! > > Enrico Granata > egranata@.com > ✆ (408) 972-7683 > > On Aug 7, 2012, at 8:41 PM, Alexander Angriawan <[email protected]> wrote: > > Hi, > > I got it working. > I follow example from the following to navigate and Nino's script to read the > char. > http://llvm.org/svn/llvm-project/lldb/trunk/examples/synthetic/libcxx.py > > I can post the script if needed. > > thanks, > PA > > > Subject: Re: [lldb-dev] Formatter for std::shared_ptr<std::wstring> > From: [email protected] > Date: Mon, 6 Aug 2012 11:54:51 -0700 > CC: [email protected]; [email protected] > To: [email protected] > > Alexander is using libcpp, part of the LLVM project, whereas you are using > libstdcpp (a GNU project). > They both implement the C++ Standard Library but with different internals! > Luckily they are easy to differentiate because libcpp classes lived in a > std::__1 namespace > > Enrico Granata > egranata@.com✆ (408) 972-7683 > > On Aug 6, 2012, at 11:52 AM, Nino Kettlitz <[email protected]> > wrote: > > Hi Alexander, > > your string implementation looks very complicated. > > Also the type of the string looks strange. I would expect that "std::wstring" > is a typedef > for "std::basic_string<wchar_t, std::char_traits<wchar_t>, > std::allocator<wchar_t>" > > You are using "std::__1::wstring" and the real type also contains this "__1" > stuff > "std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, > std::__1::allocator<wchar_t>>" > and it is additionally wrapped by a std::pair or sth similar. > > I've never seen this before. Maybe somebody else in the mailing list did?! > > So the wstring.py data formater works only for std::wstring with a > "_M_dataplus" and a "_M_p" member > > Cheers, > Nino > > > > > Am 06.08.2012 19:47, schrieb Alexander Angriawan: > I am using Mac OS X Version 10.7.4 > The following is the lldb output: > (lldb) frame variable x > (std::__1::wstring) x = { > __r_ = { > std::__1::__libcpp_compressed_pair_imp<std::__1::basic_string<wchar_t, > std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >::__rep, > std::__1::allocator<wchar_t> > = { > __first_ = { > = { > __l = { > __cap_ = 17 > __size_ = 12 > __data_ = 0x00000001001009c0 > } > __s = { > = { > __size_ = '\x11' > _ = \x11\0\0\0 > } > __data_ = { > [0] = \0\0\0\0 > [1] = \f\0\0\0 > [2] = \0\0\0\0 > [3] = \xc0\t\x10\0 > [4] = \x01\0\0\0 > } > } > __r = { > __words = { > [0] = 17 > [1] = 12 > [2] = 4296018368 > } > } > } > } > } > } > } > (lldb) > > Thanks, > PA > > Date: Mon, 6 Aug 2012 11:24:48 +0200 > From: [email protected] > To: [email protected] > Subject: Re: [lldb-dev] Formatter for std::shared_ptr<std::wstring> > > Hmm, thats strange. > > I'm currently using not the latest lldb, so maybe something changed. > > What platform are you developing on? The script is written for osx. > > Maybe you can just send me the output of "frame variable x" without having > the script installed. Maybe the structure of your strings differ. > > > N. > > Am 06.08.12 10:54, schrieb Alexander Angriawan: > Thank you Nino. > > Unfortunately the script doesn't work in my environment. > GetByteSize() always return 0 in my case. > > .... > if _M_p_data.GetByteSize() == 1: > _M_p_deref = _M_p_data.GetUnsignedInt8(e, 0) # utf-8 > elif _M_p_data.GetByteSize() == 2: > _M_p_deref = _M_p_data.GetUnsignedInt16(e, 0) # utf-16 > elif _M_p_data.GetByteSize() == 4: > _M_p_deref = _M_p_data.GetSignedInt32(e, 0) # utf-32 > else: > _M_p_deref = -1 > > if _M_p_deref <= 0: > break > ---- > > My simple test code: > > int main(int argc, const char * argv[]) > { > std::wstring x = L"fooo"; > return 0; > } > > --- > JA > > > > > > Date: Mon, 6 Aug 2012 09:54:09 +0200 > From: [email protected] > To: [email protected] > CC: [email protected] > Subject: Re: [lldb-dev] Formatter for std::shared_ptr<std::wstring> > > Oh, > > I've seen, that the script attached to the mail is not on the server, so I > attached it again, although it would be better to have it in the lldb svn. > > Yust copy the script to your hom directory and ad the folowing line to your > .lldbinit > > script sys.path[:0] = [os.path.expanduser('~')] > command alias pwd script print os.getcwd() > script import wstring > type summary add --python-function wstring.wstring_summary "std::wstring" > type summary add --python-function wstring.wstring_summary > "std::basic_string<int, class std::char_traits<int>, class > std::allocator<int> >" > type summary add --python-function wstring.wstring_summary > "std::basic_string<unsigned short, class std::char_traits<unsigned short>, > class std::allocator<unsigned short> >" > type summary add --python-function wstring.wstring_summary > "std::basic_string<wchar_t, class std::char_traits<wchar_t>, class > std::allocator<wchar_t> >" > > > Cheers, Nino > > Am 06.08.12 09:19, schrieb Alexander Angriawan: > Hello, > > I am looking to write data formatter for std::shared_ptr<std::wstring>. > > I found the following old article but this doesn't seem to work. > I have ver 159 installed. > http://lists.cs.uiuc.edu/pipermail/lldb-dev/2012-February/000825.html > > Any idea? > > Thank you much, > PA > > > _______________________________________________ > lldb-dev mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev > > > > _______________________________________________ > lldb-dev mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev > > > <formatter.bin>
_______________________________________________ lldb-dev mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
