From 90212b0b5d59b24d76b02eacfa6105c1f75a31e3 Mon Sep 17 00:00:00 2001 From: d-millar <33498836+d-millar@users.noreply.github.com> Date: Mon, 3 May 2021 19:09:30 +0000 Subject: [PATCH] GP-0: suppressing pop-up window for internal errors on Execute --- .../dbgeng/impl/dbgeng/control/DebugControlImpl1.java | 6 +++++- .../dbgeng/impl/dbgeng/control/DebugControlImpl4.java | 8 +++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/impl/dbgeng/control/DebugControlImpl1.java b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/impl/dbgeng/control/DebugControlImpl1.java index ac8936f9e2..8f5974245a 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/impl/dbgeng/control/DebugControlImpl1.java +++ b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/impl/dbgeng/control/DebugControlImpl1.java @@ -130,7 +130,11 @@ public class DebugControlImpl1 implements DebugControlInternal { BitmaskSet flags) { ULONG ctlMask = new ULONG(ctl.getBitmask()); ULONG flagMask = new ULONG(flags.getBitmask()); - COMUtils.checkRC(jnaControl.Execute(ctlMask, cmd, flagMask)); + HRESULT hr = jnaControl.Execute(ctlMask, cmd, flagMask); + if (hr.equals(COMUtilsExtra.E_INTERNALEXCEPTION)) { + return; + } + COMUtils.checkRC(hr); } @Override diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/impl/dbgeng/control/DebugControlImpl4.java b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/impl/dbgeng/control/DebugControlImpl4.java index 30ddba27e2..fa67c30ddc 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/impl/dbgeng/control/DebugControlImpl4.java +++ b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/impl/dbgeng/control/DebugControlImpl4.java @@ -19,9 +19,11 @@ import com.sun.jna.Native; import com.sun.jna.WString; import com.sun.jna.platform.win32.WinDef.ULONG; import com.sun.jna.platform.win32.WinDef.ULONGByReference; +import com.sun.jna.platform.win32.WinNT.HRESULT; import com.sun.jna.platform.win32.COM.COMUtils; import com.sun.jna.ptr.PointerByReference; +import agent.dbgeng.dbgeng.COMUtilsExtra; import agent.dbgeng.dbgeng.DebugBreakpoint; import agent.dbgeng.dbgeng.DebugBreakpoint.BreakType; import agent.dbgeng.dbgeng.DebugValue.DebugValueType; @@ -90,7 +92,11 @@ public class DebugControlImpl4 extends DebugControlImpl3 { BitmaskSet flags) { ULONG ctlMask = new ULONG(ctl.getBitmask()); ULONG flagMask = new ULONG(flags.getBitmask()); - COMUtils.checkRC(jnaControl.ExecuteWide(ctlMask, new WString(cmd), flagMask)); + HRESULT hr = jnaControl.ExecuteWide(ctlMask, new WString(cmd), flagMask); + if (hr.equals(COMUtilsExtra.E_INTERNALEXCEPTION)) { + return; + } + COMUtils.checkRC(hr); } @Override