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
_______________________________________________ lldb-dev mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
