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 |