diff --git a/pwndbg/commands/dt.py b/pwndbg/commands/dt.py index 39c28a738..02fee03ca 100644 --- a/pwndbg/commands/dt.py +++ b/pwndbg/commands/dt.py @@ -31,5 +31,5 @@ def dt(typename: str, address: int | gdb.Value | None = None) -> None: Optionally overlay that information at an address. """ if address is not None: - address = pwndbg.commands.fix(address) # type: ignore[arg-type] + address = pwndbg.commands.fix(str(address)) print(pwndbg.gdblib.dt.dt(typename, addr=address)) diff --git a/pwndbg/gdblib/dt.py b/pwndbg/gdblib/dt.py index fd46be45e..4d59c1d19 100644 --- a/pwndbg/gdblib/dt.py +++ b/pwndbg/gdblib/dt.py @@ -149,7 +149,16 @@ def dt(name: str = "", addr: int | gdb.Value | None = None, obj: gdb.Value | Non bitpos = "" if not b else (".%i" % b) - line = " +0x%04x%s %-20s : %s" % (o, bitpos, name, extra) + if obj: + line = " 0x%016x +0x%04x%s %-20s : %s" % ( + int(obj.address) + o, + o, + bitpos, + name, + extra, + ) + else: + line = " +0x%04x%s %-20s : %s" % (o, bitpos, name, extra) rv.append(line) return "\n".join(rv)