mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-28 17:11:11 -09:00
Merge remote-tracking branch 'origin/GP-2752_Dan_removePerTargetObjectListeners--SQUASHED'
This commit is contained in:
@@ -102,7 +102,7 @@ public class GdbModelTargetBreakpointContainer
|
||||
spec + " (pc=" + frame.getProgramCounter() + ")");
|
||||
//return; // Not ideal, but eb == null should be fine, since the spec holds the actions
|
||||
}
|
||||
listeners.fire.breakpointHit(this, frame.thread, frame, spec, loc);
|
||||
broadcast().breakpointHit(this, frame.thread, frame, spec, loc);
|
||||
spec.breakpointHit(frame, loc);
|
||||
return loc;
|
||||
}
|
||||
|
||||
@@ -186,7 +186,6 @@ public class GdbModelTargetInferior
|
||||
return impl.gateFuture(inferior.cont());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> step(TargetStepKind kind) {
|
||||
switch (kind) {
|
||||
@@ -210,7 +209,7 @@ public class GdbModelTargetInferior
|
||||
public CompletableFuture<Void> interrupt() {
|
||||
return impl.session.interrupt();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> attach(TargetAttachable attachable) {
|
||||
GdbModelTargetAttachable mine = impl.assertMine(GdbModelTargetAttachable.class, attachable);
|
||||
@@ -233,7 +232,7 @@ public class GdbModelTargetInferior
|
||||
}
|
||||
|
||||
protected CompletableFuture<Void> inferiorStarted(Long pid) {
|
||||
parent.getListeners().fire.event(parent, null, TargetEventType.PROCESS_CREATED,
|
||||
broadcast().event(parent, null, TargetEventType.PROCESS_CREATED,
|
||||
"Inferior " + inferior.getId() + " started " + inferior.getExecutable() + " pid=" + pid,
|
||||
List.of(this));
|
||||
/*System.err.println("inferiorStarted: realState = " + realState);
|
||||
@@ -315,28 +314,28 @@ public class GdbModelTargetInferior
|
||||
params.add(loc);
|
||||
}
|
||||
gatherThreads(params, sco.getAffectedThreads());
|
||||
impl.session.getListeners().fire.event(impl.session, targetEventThread,
|
||||
TargetEventType.BREAKPOINT_HIT, bpHit.desc(), params);
|
||||
broadcast().event(impl.session, targetEventThread, TargetEventType.BREAKPOINT_HIT,
|
||||
bpHit.desc(), params);
|
||||
}
|
||||
else if (reason instanceof GdbEndSteppingRangeReason) {
|
||||
List<Object> params = new ArrayList<>();
|
||||
gatherThreads(params, sco.getAffectedThreads());
|
||||
impl.session.getListeners().fire.event(impl.session, targetEventThread,
|
||||
TargetEventType.STEP_COMPLETED, reason.desc(), params);
|
||||
broadcast().event(impl.session, targetEventThread, TargetEventType.STEP_COMPLETED,
|
||||
reason.desc(), params);
|
||||
}
|
||||
else if (reason instanceof GdbSignalReceivedReason) {
|
||||
GdbSignalReceivedReason signal = (GdbSignalReceivedReason) reason;
|
||||
List<Object> params = new ArrayList<>();
|
||||
params.add(signal.getSignalName());
|
||||
gatherThreads(params, sco.getAffectedThreads());
|
||||
impl.session.getListeners().fire.event(impl.session, targetEventThread,
|
||||
TargetEventType.SIGNAL, reason.desc(), params);
|
||||
broadcast().event(impl.session, targetEventThread, TargetEventType.SIGNAL,
|
||||
reason.desc(), params);
|
||||
}
|
||||
else {
|
||||
List<Object> params = new ArrayList<>();
|
||||
gatherThreads(params, sco.getAffectedThreads());
|
||||
impl.session.getListeners().fire.event(impl.session, targetEventThread,
|
||||
TargetEventType.STOPPED, reason.desc(), params);
|
||||
broadcast().event(impl.session, targetEventThread, TargetEventType.STOPPED,
|
||||
reason.desc(), params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -445,8 +444,8 @@ public class GdbModelTargetInferior
|
||||
threads.getTargetThread(sco.getAffectedThreads().iterator().next());
|
||||
}
|
||||
if (targetEventThread != null) {
|
||||
impl.session.getListeners().fire.event(impl.session, targetEventThread,
|
||||
TargetEventType.RUNNING, "Running", params);
|
||||
broadcast().event(impl.session, targetEventThread, TargetEventType.RUNNING,
|
||||
"Running", params);
|
||||
invalidateMemoryAndRegisterCaches();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ public class GdbModelTargetInferiorContainer
|
||||
@Override
|
||||
public void inferiorExited(GdbInferior inf, GdbCause cause) {
|
||||
GdbModelTargetInferior inferior = getTargetInferior(inf);
|
||||
parent.getListeners().fire.event(parent, null, TargetEventType.PROCESS_EXITED,
|
||||
broadcast().event(parent, null, TargetEventType.PROCESS_EXITED,
|
||||
"Inferior " + inf.getId() + " exited code=" + inf.getExitCode(), List.of(inferior));
|
||||
inferior.inferiorExited(inf.getExitCode());
|
||||
}
|
||||
@@ -89,7 +89,7 @@ public class GdbModelTargetInferiorContainer
|
||||
public void threadCreated(GdbThread thread, GdbCause cause) {
|
||||
GdbModelTargetInferior inferior = getTargetInferior(thread.getInferior());
|
||||
GdbModelTargetThread targetThread = inferior.threads.threadCreated(thread);
|
||||
parent.getListeners().fire.event(parent, targetThread, TargetEventType.THREAD_CREATED,
|
||||
broadcast().event(parent, targetThread, TargetEventType.THREAD_CREATED,
|
||||
"Thread " + thread.getId() + " started", List.of(targetThread));
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ public class GdbModelTargetInferiorContainer
|
||||
GdbModelTargetInferior inferior = getTargetInferior(inf);
|
||||
GdbModelTargetThread targetThread =
|
||||
inferior.threads.getCachedElements().get(GdbModelTargetThread.indexThread(threadId));
|
||||
parent.getListeners().fire.event(parent, targetThread, TargetEventType.THREAD_EXITED,
|
||||
broadcast().event(parent, targetThread, TargetEventType.THREAD_EXITED,
|
||||
"Thread " + threadId + " exited", List.of(targetThread));
|
||||
inferior.threads.threadExited(threadId);
|
||||
}
|
||||
@@ -107,7 +107,7 @@ public class GdbModelTargetInferiorContainer
|
||||
public void libraryLoaded(GdbInferior inf, String name, GdbCause cause) {
|
||||
GdbModelTargetInferior inferior = getTargetInferior(inf);
|
||||
GdbModelTargetModule module = inferior.modules.libraryLoaded(name);
|
||||
parent.getListeners().fire.event(parent, null, TargetEventType.MODULE_LOADED,
|
||||
broadcast().event(parent, null, TargetEventType.MODULE_LOADED,
|
||||
"Library " + name + " loaded", List.of(module));
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@ public class GdbModelTargetInferiorContainer
|
||||
public void libraryUnloaded(GdbInferior inf, String name, GdbCause cause) {
|
||||
GdbModelTargetInferior inferior = getTargetInferior(inf);
|
||||
GdbModelTargetModule module = inferior.modules.getTargetModuleIfPresent(name);
|
||||
parent.getListeners().fire.event(parent, null, TargetEventType.MODULE_UNLOADED,
|
||||
broadcast().event(parent, null, TargetEventType.MODULE_UNLOADED,
|
||||
"Library " + name + " unloaded", List.of(module));
|
||||
inferior.modules.libraryUnloaded(name);
|
||||
}
|
||||
|
||||
@@ -159,7 +159,7 @@ public class GdbModelTargetProcessMemory
|
||||
throw new DebuggerMemoryAccessException("Cannot read at " + address);
|
||||
}
|
||||
byte[] content = Arrays.copyOf(buf.array(), (int) s.length());
|
||||
listeners.fire.memoryUpdated(this, address, content);
|
||||
broadcast().memoryUpdated(this, address, content);
|
||||
return content;
|
||||
}).exceptionally(e -> {
|
||||
e = AsyncUtils.unwrapThrowable(e);
|
||||
@@ -167,10 +167,10 @@ public class GdbModelTargetProcessMemory
|
||||
GdbCommandError gce = (GdbCommandError) e;
|
||||
e = new DebuggerMemoryAccessException(
|
||||
"Cannot read at " + address + ": " + gce.getInfo().getString("msg"));
|
||||
listeners.fire.memoryReadError(this, range, (DebuggerMemoryAccessException) e);
|
||||
broadcast().memoryReadError(this, range, (DebuggerMemoryAccessException) e);
|
||||
}
|
||||
if (e instanceof DebuggerMemoryAccessException) {
|
||||
listeners.fire.memoryReadError(this, range, (DebuggerMemoryAccessException) e);
|
||||
broadcast().memoryReadError(this, range, (DebuggerMemoryAccessException) e);
|
||||
}
|
||||
return ExceptionUtils.rethrow(e);
|
||||
});
|
||||
@@ -186,12 +186,12 @@ public class GdbModelTargetProcessMemory
|
||||
CompletableFuture<Void> future =
|
||||
inferior.writeMemory(address.getOffset(), ByteBuffer.wrap(data));
|
||||
return impl.gateFuture(future.thenAccept(__ -> {
|
||||
listeners.fire.memoryUpdated(this, address, data);
|
||||
broadcast().memoryUpdated(this, address, data);
|
||||
}));
|
||||
}
|
||||
|
||||
protected void invalidateMemoryCaches() {
|
||||
listeners.fire.invalidateCacheRequested(this);
|
||||
broadcast().invalidateCacheRequested(this);
|
||||
}
|
||||
|
||||
public void memoryChanged(long offset, int len) {
|
||||
|
||||
@@ -147,7 +147,7 @@ public class GdbModelTargetSession extends DefaultTargetModelRoot
|
||||
default:
|
||||
throw new AssertionError();
|
||||
}
|
||||
listeners.fire.consoleOutput(this, dbgChannel, out);
|
||||
broadcast().consoleOutput(this, dbgChannel, out);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -110,7 +110,7 @@ public class GdbModelTargetStackFrame
|
||||
}
|
||||
|
||||
protected void invalidateRegisterCaches() {
|
||||
listeners.fire.invalidateCacheRequested(this);
|
||||
broadcast().invalidateCacheRequested(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -117,7 +117,7 @@ public class GdbModelTargetStackFrameRegisterContainer
|
||||
elements.get(regName).stateChanged(bytes);
|
||||
}
|
||||
this.regValues = result;
|
||||
listeners.fire.registersUpdated(this, result);
|
||||
broadcast().registersUpdated(this, result);
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user