I am using Mac OS X Version 10.7.4The 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