From a8fa9d05f5130c7c464a91849351ccd25dda6a1a Mon Sep 17 00:00:00 2001 From: Niklas Hauser Date: Tue, 30 Jul 2024 17:15:17 +0200 Subject: [PATCH] [gdb] Fix UartBuffer pointer address --- CHANGELOG.md | 1 + src/emdbg/debug/px4/buffer.py | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d8783fa..705fcf1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Substitute GitHub CI path with local path by default. - Show stack overflow warning if stack usage >90%. - Do not attempt to load SVD file if target is unknown. +- Fix UartBuffer pointer address computation. ## 1.5.2 diff --git a/src/emdbg/debug/px4/buffer.py b/src/emdbg/debug/px4/buffer.py index 2407b16..f02e130 100644 --- a/src/emdbg/debug/px4/buffer.py +++ b/src/emdbg/debug/px4/buffer.py @@ -24,13 +24,14 @@ def children(self) -> Iterator[tuple[str, Any]]: yield ("buffer", self._buf['buffer']) yield ("tail -> head", f"{tail} -> {head}: {used} used, {free} free") if used: + ptr = int(self._buf['buffer'].address) if (tail < head): # [tail, head] - memories = [self.read_memory(self._buf['buffer'] + tail, used)] + memories = [self.read_memory(ptr + tail, used)] else: # head], [tail - memories = [self.read_memory(self._buf['buffer'] + tail, size - tail), - self.read_memory(self._buf['buffer'], head)] + memories = [self.read_memory(ptr + tail, size - tail), + self.read_memory(ptr, head)] # Convert to Prints else \hh hex values content = "".join(chr(v) if chr(v).isprintable() else f"\\{v:02x}" for memory in memories