diff options
author | Andrew Tridgell <tridge@samba.org> | 2014-04-26 21:11:53 +1000 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-04-28 11:42:59 +0200 |
commit | e9c94fa58113f60c82be6d829fadd307195ecfb7 (patch) | |
tree | 62f3d2b3be9c1d3b4ebfe258909e439a5d49dbc5 | |
parent | ad77ba26427aa9a2d8b8241fc95271667a1c0863 (diff) | |
download | px4-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
-rw-r--r-- | Debug/Nuttx.py | 16 |
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): |