From 8c729698a8a4332dfd1e8663c1d6e3099ea04663 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Mon, 16 Sep 2024 16:10:17 -0700 Subject: [PATCH] debugger: implement scrolling in the hex view --- debugger/hexview.go | 11 +++++++++++ debugger/main.go | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/debugger/hexview.go b/debugger/hexview.go index 6fb12c4..5c264a7 100644 --- a/debugger/hexview.go +++ b/debugger/hexview.go @@ -56,6 +56,17 @@ func (m *HexView) moveSelection(delta int) bool { newAddr := m.selectedAddr + delta if newAddr >= 0 && newAddr < m.mem.Len() { m.selectedAddr = newAddr + start, end := m.VisibleBytes() + newFirstLine := newAddr / 16 + if newAddr < start { + newFirstLine = newFirstLine - (m.height * 4 / 5) + newFirstLine = max(newFirstLine, 0) + m.firstAddr = newFirstLine * 16 + } else if newAddr >= end { + newFirstLine = newFirstLine - (m.height * 1 / 5) + newFirstLine = min(newFirstLine, (m.mem.Len()/16)-m.height) + m.firstAddr = newFirstLine * 16 + } return true } return false diff --git a/debugger/main.go b/debugger/main.go index dcd1096..891593e 100644 --- a/debugger/main.go +++ b/debugger/main.go @@ -14,7 +14,7 @@ func main() { } defer dbg.Close() - mem := memory.New(dbg, 768) + mem := memory.New(dbg, 4*1024) if err := UI(mem); err != nil { log.Fatal(err)