aboutsummaryrefslogtreecommitdiff
path: root/Debug
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2014-04-26 21:11:53 +1000
committerLorenz Meier <lm@inf.ethz.ch>2014-04-28 11:42:59 +0200
commite9c94fa58113f60c82be6d829fadd307195ecfb7 (patch)
tree62f3d2b3be9c1d3b4ebfe258909e439a5d49dbc5 /Debug
parentad77ba26427aa9a2d8b8241fc95271667a1c0863 (diff)
downloadpx4-firmware-e9c94fa58113f60c82be6d829fadd307195ecfb7.tar.gz
px4-firmware-e9c94fa58113f60c82be6d829fadd307195ecfb7.tar.bz2
px4-firmware-e9c94fa58113f60c82be6d829fadd307195ecfb7.zip
Debug: fixes for Nuttx.py debug gdb add-ons
also fixed preceding mask calculation in show heaps
Diffstat (limited to 'Debug')
-rw-r--r--Debug/Nuttx.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/Debug/Nuttx.py b/Debug/Nuttx.py
index 093edd0e0..7cc21b99f 100644
--- a/Debug/Nuttx.py
+++ b/Debug/Nuttx.py
@@ -306,12 +306,15 @@ class NX_show_heap (gdb.Command):
def __init__(self):
super(NX_show_heap, self).__init__('show heap', gdb.COMMAND_USER)
- if gdb.lookup_type('struct mm_allocnode_s').sizeof == 8:
- self._allocflag = 0x80000000
- self._allocnodesize = 8
- else:
+ struct_mm_allocnode_s = gdb.lookup_type('struct mm_allocnode_s')
+ preceding_size = struct_mm_allocnode_s['preceding'].type.sizeof
+ if preceding_size == 2:
self._allocflag = 0x8000
- self._allocnodesize = 4
+ elif preceding_size == 4:
+ self._allocflag = 0x80000000
+ else:
+ raise gdb.GdbError('invalid mm_allocnode_s.preceding size %u' % preceding_size)
+ self._allocnodesize = struct_mm_allocnode_s.sizeof
def _node_allocated(self, allocnode):
if allocnode['preceding'] & self._allocflag:
@@ -333,7 +336,8 @@ class NX_show_heap (gdb.Command):
state = ''
else:
state = '(free)'
- print ' {} {} {}'.format(allocnode.address + 8, self._node_size(allocnode), state)
+ print ' {} {} {}'.format(allocnode.address + self._allocnodesize,
+ self._node_size(allocnode), state)
cursor += self._node_size(allocnode) / self._allocnodesize
def invoke(self, args, from_tty):