From 4e4a227221fb078bec1a79e68f50d0b8258a7c54 Mon Sep 17 00:00:00 2001 From: Dan <46821332+nsadeveloper789@users.noreply.github.com> Date: Wed, 31 Jul 2024 11:06:47 -0400 Subject: [PATCH] GP-4781: Fix address space issues. Fix RegsProvider NPE. --- .../core/debug/gui/register/DebuggerRegistersProvider.java | 5 +++-- .../main/java/ghidra/trace/database/program/ByteCache.java | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/register/DebuggerRegistersProvider.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/register/DebuggerRegistersProvider.java index d6159927e1..3b654ae5ac 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/register/DebuggerRegistersProvider.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/register/DebuggerRegistersProvider.java @@ -1021,8 +1021,9 @@ public class DebuggerRegistersProvider extends ComponentProviderAdapter if (regs == null && register.getAddressSpace().isRegisterSpace()) { return false; } - AddressRange range = - current.getPlatform().getConventionalRegisterRange(regs.getAddressSpace(), register); + AddressRange range = current.getPlatform() + .getConventionalRegisterRange(regs == null ? null : regs.getAddressSpace(), + register); return viewKnown.contains(range.getMinAddress(), range.getMaxAddress()); } diff --git a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/ByteCache.java b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/ByteCache.java index 1fbdfc2db0..166bb69dba 100644 --- a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/ByteCache.java +++ b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/ByteCache.java @@ -38,6 +38,9 @@ public abstract class ByteCache { if (!valid || start == null) { return false; } + if (start.getAddressSpace() != address.getAddressSpace()) { + return false; + } long offset = address.subtract(start); return Long.compareUnsigned(offset + length, len) < 0; }