From 766aa1e8fd983bfab80c5137c460dea2a3915590 Mon Sep 17 00:00:00 2001 From: "Oleg V. Polivets" Date: Tue, 9 Feb 2021 03:28:20 +0300 Subject: [PATCH] Fixes regarding RAM Search and RAM Watch dialogs. (#323) * FIX: invalid size of watch region after adding it from RAM Search dialog. * FIX: endianness of 2 byte value not same for same address in RAM Search and RAM Watch dialogs. * FIX: RAM Watch dialog not suppot 4 byte values. --- src/drivers/Qt/RamSearch.cpp | 9 ++++++++- src/drivers/Qt/RamWatch.cpp | 11 +++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/drivers/Qt/RamSearch.cpp b/src/drivers/Qt/RamSearch.cpp index db647083..fbf362c8 100644 --- a/src/drivers/Qt/RamSearch.cpp +++ b/src/drivers/Qt/RamSearch.cpp @@ -1243,7 +1243,14 @@ void RamSearchDialog_t::addRamWatchClicked(void) } strcpy( desc, "Quick Watch Add"); - ramWatchList.add_entry( desc, addr, dpyType, dpySize, 0 ); + int size = 1; + switch (dpySize) { + case 'd': size = 4; break; + case 'w': size = 2; break; + case 'b': size = 1; break; + default: break; + } + ramWatchList.add_entry( desc, addr, dpyType, size, 0 ); openRamWatchWindow(consoleWindow); } diff --git a/src/drivers/Qt/RamWatch.cpp b/src/drivers/Qt/RamWatch.cpp index a49cf303..2dbbf5c2 100644 --- a/src/drivers/Qt/RamWatch.cpp +++ b/src/drivers/Qt/RamWatch.cpp @@ -728,14 +728,17 @@ void ramWatch_t::updateMem (void) } else if (size == 2) { - val.u16 = GetMem (addr) | (GetMem (addr + 1) << 8); + val.u16 = (GetMem (addr) << 8) | GetMem (addr + 1); } - else + else if (size == 4) { - val.u8 = GetMem (addr); + val.u32 = GetMem (addr + 3); + val.u32 |= GetMem (addr + 2) << 8; + val.u32 |= GetMem (addr + 1) << 16; + val.u32 |= GetMem (addr ) << 24; } } -//---------------------------------------------------------------------------- +//------------------------------------------------------------------------.---- void RamWatchDialog_t::openWatchEditWindow( ramWatch_t *rw, int mode) { int ret, isSep = 0;