From a27972db2e04e7ea68b5ca396d8a1dd303c2fd1b Mon Sep 17 00:00:00 2001 From: d-millar <33498836+d-millar@users.noreply.github.com> Date: Fri, 14 May 2021 14:00:54 +0000 Subject: [PATCH] GP-930: Reporting breakoints kinds correctly in Windows --- .../iface2/DbgModelTargetBreakpointSpec.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/iface2/DbgModelTargetBreakpointSpec.java b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/iface2/DbgModelTargetBreakpointSpec.java index 8e2efe07b0..f623f8498f 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/iface2/DbgModelTargetBreakpointSpec.java +++ b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/iface2/DbgModelTargetBreakpointSpec.java @@ -67,11 +67,21 @@ public interface DbgModelTargetBreakpointSpec extends // @Override public default TargetBreakpointKindSet getKinds() { - return TargetBreakpointKindSet.of( - TargetBreakpointKind.SW_EXECUTE, - TargetBreakpointKind.HW_EXECUTE, - TargetBreakpointKind.READ, - TargetBreakpointKind.WRITE); + switch (getBreakpointInfo().getType()) { + case BREAKPOINT: + return TargetBreakpointKindSet.of(TargetBreakpointKind.SW_EXECUTE); + case HW_BREAKPOINT: + return TargetBreakpointKindSet.of(TargetBreakpointKind.HW_EXECUTE); + case HW_WATCHPOINT: + return TargetBreakpointKindSet.of(TargetBreakpointKind.WRITE); + case READ_WATCHPOINT: + return TargetBreakpointKindSet.of(TargetBreakpointKind.READ); + case ACCESS_WATCHPOINT: + return TargetBreakpointKindSet.of(TargetBreakpointKind.READ, + TargetBreakpointKind.WRITE); + default: + return TargetBreakpointKindSet.of(); + } } @Override