Added alernate typeinfo lookup names for D lang (#213) (#214)

* Added alernate typeinfo lookup names for D lang (#213)

Names fetched from: https://dlang.org/ctod.html#types

* Remove unused import from typeinfo.py: six
pull/221/head
Disconnect3d 9 years ago committed by Zach Riggle
parent 3eb15c5d41
commit 7ec861b110

@ -16,7 +16,6 @@ import sys
import tempfile
import gdb
import six
import pwndbg.events
import pwndbg.gcc
@ -24,6 +23,7 @@ import pwndbg.memoize
module = sys.modules[__name__]
def is_pointer(value):
type = value
@ -33,25 +33,36 @@ def is_pointer(value):
type = type.strip_typedefs()
return type.code == gdb.TYPE_CODE_PTR
def lookup_types(*types):
for type_str in types:
try:
return gdb.lookup_type(type_str)
except Exception as e:
exc = e
raise exc
@pwndbg.events.start
@pwndbg.events.stop
def update():
module.char = gdb.lookup_type('char')
module.ulong = gdb.lookup_type('unsigned long')
module.long = gdb.lookup_type('long')
module.uchar = gdb.lookup_type('unsigned char')
module.ushort = gdb.lookup_type('unsigned short')
module.uint = gdb.lookup_type('unsigned int')
module.ulong = lookup_types('unsigned long', 'uint')
module.long = lookup_types('long', 'int')
module.uchar = lookup_types('unsigned char', 'ubyte')
module.ushort = lookup_types('unsigned short', 'ushort')
module.uint = lookup_types('unsigned int', 'uint')
module.void = gdb.lookup_type('void')
module.uint8 = gdb.lookup_type('unsigned char')
module.uint16 = gdb.lookup_type('unsigned short')
module.uint32 = gdb.lookup_type('unsigned int')
module.uint64 = gdb.lookup_type('unsigned long long')
module.uint8 = module.uchar
module.uint16 = module.ushort
module.uint32 = module.uint
module.uint64 = lookup_types('unsigned long long', 'ulong')
module.int8 = gdb.lookup_type('char')
module.int16 = gdb.lookup_type('short')
module.int32 = gdb.lookup_type('int')
module.int64 = gdb.lookup_type('long long')
module.int64 = lookup_types('long long', 'long')
module.ssize_t = module.long
module.size_t = module.ulong

Loading…
Cancel
Save