Author: Armin Rigo <[email protected]>
Branch:
Changeset: r67407:8eb4474573c2
Date: 2013-10-16 10:50 +0200
http://bitbucket.org/pypy/pypy/changeset/8eb4474573c2/
Log: 32-bit support
diff --git a/pypy/tool/gdb_pypy.py b/pypy/tool/gdb_pypy.py
--- a/pypy/tool/gdb_pypy.py
+++ b/pypy/tool/gdb_pypy.py
@@ -119,10 +119,15 @@
typeids_txt = os.path.join(newroot, 'typeids.txt')
print 'loading', typeids_txt
typeids = {}
+ if sys.maxint < 2**32:
+ TIDT = "int*"
+ else:
+ TIDT = "char*"
with open(typeids_txt) as f:
for line in f:
member, descr = map(str.strip, line.split(None, 1))
- expr = "((char*)(&pypy_g_typeinfo.%s)) -
(char*)&pypy_g_typeinfo" % member
+ expr = ("((%s)(&pypy_g_typeinfo.%s)) - (%s)&pypy_g_typeinfo"
+ % (TIDT, member, TIDT))
offset = int(self.gdb.parse_and_eval(expr))
typeids[offset] = descr
return typeids
diff --git a/pypy/tool/test/test_gdb_pypy.py b/pypy/tool/test/test_gdb_pypy.py
--- a/pypy/tool/test/test_gdb_pypy.py
+++ b/pypy/tool/test/test_gdb_pypy.py
@@ -1,6 +1,11 @@
-import py
+import py, sys
from pypy.tool import gdb_pypy
+if sys.maxint < 2**32:
+ TIDT = "int*"
+else:
+ TIDT = "char*"
+
class FakeGdb(object):
COMMAND_NONE = -1
@@ -108,7 +113,8 @@
""".strip())
progspace = Mock(filename=str(exe))
exprs = {
- '((char*)(&pypy_g_typeinfo.member0)) - (char*)&pypy_g_typeinfo': 0,
+ '((%s)(&pypy_g_typeinfo.member0)) - (%s)&pypy_g_typeinfo'
+ % (TIDT, TIDT): 0,
}
gdb = FakeGdb(exprs, progspace)
cmd = gdb_pypy.RPyType(gdb)
@@ -135,9 +141,12 @@
myvar = Value(d)
exprs = {
'*myvar': myvar,
- '((char*)(&pypy_g_typeinfo.member0)) - (char*)&pypy_g_typeinfo': 0,
- '((char*)(&pypy_g_typeinfo.member1)) - (char*)&pypy_g_typeinfo': 123,
- '((char*)(&pypy_g_typeinfo.member2)) - (char*)&pypy_g_typeinfo': 456,
+ '((%s)(&pypy_g_typeinfo.member0)) - (%s)&pypy_g_typeinfo'
+ % (TIDT, TIDT): 0,
+ '((%s)(&pypy_g_typeinfo.member1)) - (%s)&pypy_g_typeinfo'
+ % (TIDT, TIDT): 123,
+ '((%s)(&pypy_g_typeinfo.member2)) - (%s)&pypy_g_typeinfo'
+ % (TIDT, TIDT): 456,
}
gdb = FakeGdb(exprs, progspace)
cmd = gdb_pypy.RPyType(gdb)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit