gdb: Workaround for gdb.Value being not accepted by %x
Fixes the following error in "scylla segment-descs" and a similar one in "scylla lsa-segment":
Traceback (most recent call last):
File "scylla-gdb.py", line 530, in invoke
gdb.write('0x%x: lsa free=%d region=0x%x zone=0x%x\n' % (addr, desc['_free_space'], desc['_region'], desc['_zone']))
TypeError: %x format: an integer is required, not gdb.Value
Message-Id: <1493029465-6482-1-git-send-email-tgrabiec@scylladb.com>
This commit is contained in:
committed by
Avi Kivity
parent
6d9e18fd61
commit
dfbb9fd8f1
@@ -527,7 +527,7 @@ class scylla_segment_descs(gdb.Command):
|
||||
addr = base
|
||||
for desc in std_vector(gdb.parse_and_eval('\'logalloc\'::shard_segment_pool._segments')):
|
||||
if desc['_lsa_managed']:
|
||||
gdb.write('0x%x: lsa free=%d region=0x%x zone=0x%x\n' % (addr, desc['_free_space'], desc['_region'], desc['_zone']))
|
||||
gdb.write('0x%x: lsa free=%d region=0x%x zone=0x%x\n' % (addr, desc['_free_space'], int(desc['_region']), int(desc['_zone'])))
|
||||
else:
|
||||
gdb.write('0x%x: std\n' % (addr))
|
||||
addr += segment_size
|
||||
@@ -669,11 +669,11 @@ class lsa_object_descriptor(object):
|
||||
return self.desc_pos + self.dead_size()
|
||||
def __str__(self):
|
||||
if self.is_live():
|
||||
return '0x%x: live %s @ 0x%x' % (self.desc_pos, self.migrator(),
|
||||
self.obj_pos)
|
||||
return '0x%x: live %s @ 0x%x' % (int(self.desc_pos), self.migrator(),
|
||||
int(self.obj_pos))
|
||||
else:
|
||||
return '0x%x: dead size=%d' % (self.desc_pos, self.dead_size())
|
||||
|
||||
return '0x%x: dead size=%d' % (int(self.desc_pos), self.dead_size())
|
||||
|
||||
|
||||
class scylla_lsa_segment(gdb.Command):
|
||||
def __init__(self):
|
||||
|
||||
Reference in New Issue
Block a user