diff --git a/Ghidra/Debug/Debugger-agent-gdb/src/main/py/src/ghidragdb/methods.py b/Ghidra/Debug/Debugger-agent-gdb/src/main/py/src/ghidragdb/methods.py index e43a34c8ac..73d9fcbeb0 100644 --- a/Ghidra/Debug/Debugger-agent-gdb/src/main/py/src/ghidragdb/methods.py +++ b/Ghidra/Debug/Debugger-agent-gdb/src/main/py/src/ghidragdb/methods.py @@ -741,97 +741,115 @@ def break_access_expression(expression: str) -> None: @REGISTRY.method(action='break_ext', display='Catch Event') -def break_ext_event(inferior: Inferior, spec: Annotated[str, ParamDesc(display='Type')]) -> None: +def break_ext_event(inferior: Inferior, + spec: Annotated[str, ParamDesc(display='Type')]) -> None: """Set a generic catchpoint (catch).""" gdb.execute(f'catch {spec}') @REGISTRY.method(display='Catch Event') -def break_event(container: BreakpointContainer, spec: Annotated[str, ParamDesc(display='Type')], desc: Annotated[str, ParamDesc(display='Desc')]): +def break_event(container: BreakpointContainer, + spec: Annotated[str, ParamDesc(display='Type')], + desc: Annotated[str, ParamDesc(display='Desc')]) -> None: """Set a generic catchpoint (catch).""" gdb.execute(f'catch {spec} {desc}') @REGISTRY.method(action='break_ext', display='Catch Signal') -def break_ext_signal(inferior: Inferior, signal: Annotated[str, ParamDesc(display='Signal (opt)')]): +def break_ext_signal(inferior: Inferior, signal: Annotated[ + str, ParamDesc(display='Signal (opt)')]) -> None: """Set a signal catchpoint (catch signal).""" gdb.execute(f'catch signal {signal}') @REGISTRY.method(display='Catch Signal') -def break_signal(container: BreakpointContainer, signal: Annotated[str, ParamDesc(display='Signal (opt)')]): +def break_signal(container: BreakpointContainer, signal: Annotated[ + str, ParamDesc(display='Signal (opt)')]) -> None: """Set a signal catchpoint (catch signal)).""" gdb.execute(f'catch signal {signal}') @REGISTRY.method(action='break_ext', display='Catch Syscall') -def break_ext_syscall(inferior: Inferior, syscall: Annotated[str, ParamDesc(display='Syscall (opt)')]): +def break_ext_syscall(inferior: Inferior, syscall: Annotated[ + str, ParamDesc(display='Syscall (opt)')]) -> None: """Set a syscall catchpoint (catch syscall)).""" gdb.execute(f'catch syscall {syscall}') @REGISTRY.method(display='Catch Syscall') -def break_syscall(container: BreakpointContainer, syscall: Annotated[str, ParamDesc(display='Syscall (opt)')]): +def break_syscall(container: BreakpointContainer, syscall: Annotated[ + str, ParamDesc(display='Syscall (opt)')]) -> None: """Set a syscall catchpoint (catch syscall).""" gdb.execute(f'catch syscall {syscall}') @REGISTRY.method(action='break_ext', display='Catch Load') -def break_ext_load(inferior: Inferior, library: Annotated[str, ParamDesc(display='Library (opt)')]): +def break_ext_load(inferior: Inferior, library: Annotated[ + str, ParamDesc(display='Library (opt)')]) -> None: """Set a load catchpoint (catch load)).""" gdb.execute(f'catch load {library}') @REGISTRY.method(display='Catch Load') -def break_load(container: BreakpointContainer, library: Annotated[str, ParamDesc(display='Library (opt)')]): +def break_load(container: BreakpointContainer, library: Annotated[ + str, ParamDesc(display='Library (opt)')]) -> None: """Set a load catchpoint (catch load).""" gdb.execute(f'catch load {library}') @REGISTRY.method(action='break_ext', display='Catch Unload') -def break_ext_unload(inferior: Inferior, library: Annotated[str, ParamDesc(display='Library (opt)')]): +def break_ext_unload(inferior: Inferior, + library: Annotated[ + str, ParamDesc(display='Library (opt)')]) -> None: """Set a unload catchpoint (catch unload)).""" gdb.execute(f'catch unload {library}') @REGISTRY.method(display='Catch Unload') -def break_unload(container: BreakpointContainer, library: Annotated[str, ParamDesc(display='Library (opt)')]): +def break_unload(container: BreakpointContainer, library: Annotated[ + str, ParamDesc(display='Library (opt)')]) -> None: """Set a unload catchpoint (catch unload).""" gdb.execute(f'catch unload {library}') @REGISTRY.method(action='break_ext', display='Catch Catch') -def break_ext_catch(inferior: Inferior, exception: Annotated[str, ParamDesc(display='Exception (opt)')]): +def break_ext_catch(inferior: Inferior, exception: Annotated[ + str, ParamDesc(display='Exception (opt)')]) -> None: """Set a catch catchpoint (catch catch)).""" gdb.execute(f'catch catch {exception}') @REGISTRY.method(display='Catch Catch') -def break_catch(container: BreakpointContainer, exception: Annotated[str, ParamDesc(display='Exception (opt)')]): +def break_catch(container: BreakpointContainer, exception: Annotated[ + str, ParamDesc(display='Exception (opt)')]) -> None: """Set a catch catchpoint (catch catch).""" gdb.execute(f'catch catch {exception}') @REGISTRY.method(action='break_ext', display='Catch Throw') -def break_ext_throw(inferior: Inferior, exception: Annotated[str, ParamDesc(display='Exception (opt)')]): +def break_ext_throw(inferior: Inferior, exception: Annotated[ + str, ParamDesc(display='Exception (opt)')]) -> None: """Set a throw catchpoint (catch throw)).""" gdb.execute(f'catch throw {exception}') @REGISTRY.method(display='Catch Throw') -def break_throw(container: BreakpointContainer, exception: Annotated[str, ParamDesc(display='Exception (opt)')]): +def break_throw(container: BreakpointContainer, exception: Annotated[ + str, ParamDesc(display='Exception (opt)')]) -> None: """Set a throw catchpoint (catch throw).""" gdb.execute(f'catch throw {exception}') @REGISTRY.method(action='break_ext', display='Catch Rethrow') -def break_ext_rethrow(inferior: Inferior, exception: Annotated[str, ParamDesc(display='Exception (opt)')]): +def break_ext_rethrow(inferior: Inferior, exception: Annotated[ + str, ParamDesc(display='Exception (opt)')]) -> None: """Set a rethrow catchpoint (catch rethrow)).""" gdb.execute(f'catch rethrow {exception}') @REGISTRY.method(display='Catch Rethrow') -def break_rethrow(container: BreakpointContainer, exception: Annotated[str, ParamDesc(display='Exception (opt)')]): +def break_rethrow(container: BreakpointContainer, exception: Annotated[ + str, ParamDesc(display='Exception (opt)')]) -> None: """Set a rethrow catchpoint (catch rethrow).""" gdb.execute(f'catch rethrow {exception}') @@ -844,7 +862,8 @@ def break_describe(breakpoint: BreakpointSpec): lines = desc.split('\n') index = lines[0].index('What') if index is not None: - breakpoint.set_value('_display', "[{key}] {desc}".format(key=bpt.number, desc=lines[1][index:])) + breakpoint.set_value('_display', "[{key}] {desc}".format( + key=bpt.number, desc=lines[1][index:])) with commands.open_tracked_tx('Refresh Breakpoints'): gdb.execute('ghidra trace put-breakpoints') diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbMethodsTest.java b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbMethodsTest.java index 776ce01f2d..988afd19be 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbMethodsTest.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbMethodsTest.java @@ -1143,7 +1143,7 @@ public class GdbMethodsTest extends AbstractGdbTraceRmiTest { } @Test - public void testBreakEvent() throws Exception { + public void testBreakExtEvent() throws Exception { try (GdbAndConnection conn = startAndConnectGdb()) { conn.execute(""" file bash @@ -1151,13 +1151,15 @@ public class GdbMethodsTest extends AbstractGdbTraceRmiTest { %s start""" .formatted(INSTRUMENT_STOPPED)); - RemoteMethod breakEvent = conn.getMethod("break_event"); + RemoteMethod breakEvent = conn.getMethod("break_ext_event"); try (ManagedDomainObject mdo = openDomainObject("/New Traces/gdb/bash")) { tb = new ToyDBTraceBuilder((Trace) mdo.get()); waitStopped(); TraceObject inf = Objects.requireNonNull(tb.obj("Inferiors[1]")); - breakEvent.invoke(Map.of("inferior", inf, "spec", "load")); + breakEvent.invoke(Map.ofEntries( + Map.entry("inferior", inf), + Map.entry("spec", "load"))); String out = conn.executeCapture("info break"); assertThat(out, containsString("load of library")); diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/lldb/rmi/LldbHooksTest.java b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/lldb/rmi/LldbHooksTest.java index 1bb60f67ea..d97175621e 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/lldb/rmi/LldbHooksTest.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/lldb/rmi/LldbHooksTest.java @@ -308,7 +308,6 @@ public class LldbHooksTest extends AbstractLldbTraceRmiTest { start(conn, getSpecimenPrint()); conn.execute("cont"); - waitRunning(conn.conn); waitForPass(() -> { TraceSnapshot snapshot =