lldb4aoo.py (0d72dfe8) lldb4aoo.py (a54092f6)
1# to activate run the command below when inside lldb
2# command script import /tools/lldb4aoo.py
3# or add the line to ~/.lldbinit to always activate it
4
5def __lldb_init_module( dbg, dict):
6 # the list of AOO specific types
7 aoo_types = ['rtl_String', 'rtl::OString', 'rtl_uString', 'rtl::OUString',
8 '_ByteStringData', '_UniStringData', 'ByteString', 'UniString']

--- 12 unchanged lines hidden (view full) ---

21 aoo_breakfn += ['__cxa_throw']
22 # register the function breakpoints
23 for t in aoo_breakfn:
24 dbg.HandleCommand( 'breakpoint set -n ' + t)
25
26
27# definitions for individual LLDB type summary helpers
28
1# to activate run the command below when inside lldb
2# command script import /tools/lldb4aoo.py
3# or add the line to ~/.lldbinit to always activate it
4
5def __lldb_init_module( dbg, dict):
6 # the list of AOO specific types
7 aoo_types = ['rtl_String', 'rtl::OString', 'rtl_uString', 'rtl::OUString',
8 '_ByteStringData', '_UniStringData', 'ByteString', 'UniString']

--- 12 unchanged lines hidden (view full) ---

21 aoo_breakfn += ['__cxa_throw']
22 # register the function breakpoints
23 for t in aoo_breakfn:
24 dbg.HandleCommand( 'breakpoint set -n ' + t)
25
26
27# definitions for individual LLDB type summary helpers
28
29def ret_strinfo( refs, length, ary0):
30 a = ary0.AddressOf().GetPointeeData( 0, length)
31 if ary0.GetByteSize() == 1:
32 s = ''.join([chr(x) for x in a.uint8s])
33 else: # assume UTF-16
34 s = (u''.join([unichr(x) for x in a.uint16s])).encode('utf-8')
35 return ('{refs=%d, len=%d, str="%s"}' % (refs, length, s.encode('string_escape')))
36
29def getinfo_for_rtl_String( valobj, dict):
30 while valobj.TypeIsPointerType():
31 valobj = valobj.Dereference()
32 r = valobj.GetChildMemberWithName('refCount').GetValueAsSigned()
33 l = valobj.GetChildMemberWithName('length').GetValueAsSigned()
37def getinfo_for_rtl_String( valobj, dict):
38 while valobj.TypeIsPointerType():
39 valobj = valobj.Dereference()
40 r = valobj.GetChildMemberWithName('refCount').GetValueAsSigned()
41 l = valobj.GetChildMemberWithName('length').GetValueAsSigned()
34 a = valobj.GetChildMemberWithName('buffer').AddressOf().GetPointeeData(0,l)
35 s = ''.join([chr(x) for x in a.uint8s])
36 return '{refs=%d, len=%d, str="%s"}'%(r,l,s)
37 return info
42 a = valobj.GetChildMemberWithName('buffer')
43 return ret_strinfo(r,l,a)
38
39def getinfo_for_rtl_uString( valobj, dict):
40 while valobj.TypeIsPointerType():
41 valobj = valobj.Dereference()
42 r = valobj.GetChildMemberWithName('refCount').GetValueAsSigned()
43 l = valobj.GetChildMemberWithName('length').GetValueAsSigned()
44
45def getinfo_for_rtl_uString( valobj, dict):
46 while valobj.TypeIsPointerType():
47 valobj = valobj.Dereference()
48 r = valobj.GetChildMemberWithName('refCount').GetValueAsSigned()
49 l = valobj.GetChildMemberWithName('length').GetValueAsSigned()
44 a = valobj.GetChildMemberWithName('buffer').AddressOf().GetPointeeData(0,l)
45 s = (u''.join([unichr(x) for x in a.uint16s])).encode('utf-8')
46 return '{refs=%d, len=%d, str="%s"}'%(r,l,s)
50 a = valobj.GetChildMemberWithName('buffer')
51 return ret_strinfo(r,l,a)
47
48def getinfo_for__ByteStringData( valobj, dict):
49 while valobj.TypeIsPointerType():
50 valobj = valobj.Dereference()
51 r = valobj.GetChildMemberWithName('mnRefCount').GetValueAsSigned()
52 l = valobj.GetChildMemberWithName('mnLen').GetValueAsSigned()
52
53def getinfo_for__ByteStringData( valobj, dict):
54 while valobj.TypeIsPointerType():
55 valobj = valobj.Dereference()
56 r = valobj.GetChildMemberWithName('mnRefCount').GetValueAsSigned()
57 l = valobj.GetChildMemberWithName('mnLen').GetValueAsSigned()
53 a = valobj.GetChildMemberWithName('maStr').AddressOf().GetPointeeData(0,l)
54 s = ''.join([chr(x) for x in a.uint8s])
55 return '{refs=%d, len=%d, str="%s"}'%(r,l,s)
58 a = valobj.GetChildMemberWithName('maStr')
59 return ret_strinfo(r,l,a)
56
57def getinfo_for__UniStringData( valobj, dict):
58 while valobj.TypeIsPointerType():
59 valobj = valobj.Dereference()
60 r = valobj.GetChildMemberWithName('mnRefCount').GetValueAsSigned()
61 l = valobj.GetChildMemberWithName('mnLen').GetValueAsSigned()
60
61def getinfo_for__UniStringData( valobj, dict):
62 while valobj.TypeIsPointerType():
63 valobj = valobj.Dereference()
64 r = valobj.GetChildMemberWithName('mnRefCount').GetValueAsSigned()
65 l = valobj.GetChildMemberWithName('mnLen').GetValueAsSigned()
62 a = valobj.GetChildMemberWithName('maStr').AddressOf().GetPointeeData(0,l)
63 s = (u''.join([unichr(x) for x in a.uint16s])).encode('utf-8')
64 return '{refs=%d, len=%d, str="%s"}'%(r,l,s)
66 a = valobj.GetChildMemberWithName('maStr')
67 return ret_strinfo(r,l,a)
65
66
67def getinfo_for_rtl_OString( valobj, dict):
68 d = valobj.GetChildMemberWithName('pData')
69 return d.Dereference()
70
71def getinfo_for_rtl_OUString( valobj, dict):
72 d = valobj.GetChildMemberWithName('pData')
73 return d.Dereference()
74
75def getinfo_for_ByteString( valobj, dict):
76 d = valobj.GetChildMemberWithName('mpData')
77 return d.Dereference()
78
79def getinfo_for_UniString( valobj, dict):
80 d = valobj.GetChildMemberWithName('mpData')
81 return d.Dereference()
82
68
69
70def getinfo_for_rtl_OString( valobj, dict):
71 d = valobj.GetChildMemberWithName('pData')
72 return d.Dereference()
73
74def getinfo_for_rtl_OUString( valobj, dict):
75 d = valobj.GetChildMemberWithName('pData')
76 return d.Dereference()
77
78def getinfo_for_ByteString( valobj, dict):
79 d = valobj.GetChildMemberWithName('mpData')
80 return d.Dereference()
81
82def getinfo_for_UniString( valobj, dict):
83 d = valobj.GetChildMemberWithName('mpData')
84 return d.Dereference()
85