Merge remote-tracking branch 'origin/GP-2752_Dan_removePerTargetObjectListeners--SQUASHED'

This commit is contained in:
Ryan Kurtz
2022-11-12 01:36:31 -05:00
78 changed files with 384 additions and 1261 deletions

View File

@@ -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;
}

View File

@@ -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();
}
}

View File

@@ -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);
}

View File

@@ -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) {

View File

@@ -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

View File

@@ -110,7 +110,7 @@ public class GdbModelTargetStackFrame
}
protected void invalidateRegisterCaches() {
listeners.fire.invalidateCacheRequested(this);
broadcast().invalidateCacheRequested(this);
}
@Override

View File

@@ -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;
});
}