summaryrefslogtreecommitdiffstats
path: root/Tools/gdb/libpython.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/gdb/libpython.py')
-rwxr-xr-xTools/gdb/libpython.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py
index 5fdc812..8aa7463 100755
--- a/Tools/gdb/libpython.py
+++ b/Tools/gdb/libpython.py
@@ -100,6 +100,8 @@ MAX_OUTPUT_LEN=1024
hexdigits = "0123456789abcdef"
+USED_TAGS = 0b11
+
ENCODING = locale.getpreferredencoding()
FRAME_INFO_OPTIMIZED_OUT = '(frame information optimized out)'
@@ -158,6 +160,8 @@ class PyObjectPtr(object):
_typename = 'PyObject'
def __init__(self, gdbval, cast_to=None):
+ # Clear the tagged pointer
+ gdbval = gdb.Value(int(gdbval) & (~USED_TAGS)).cast(gdbval.type)
if cast_to:
self._gdbval = gdbval.cast(cast_to)
else: