mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 19:42:36 +02:00
Merge remote-tracking branch 'origin/patch'
This commit is contained in:
commit
db2ee5c7fd
3 changed files with 12 additions and 4 deletions
|
@ -67,7 +67,7 @@ public class GdbModelTargetProcessMemory
|
|||
synchronized (this) {
|
||||
regions =
|
||||
byStart.values().stream().map(this::getTargetRegion).collect(Collectors.toList());
|
||||
if (regions.isEmpty()) {
|
||||
if (regions.isEmpty() && valid) {
|
||||
Map<BigInteger, GdbMemoryMapping> defaultMap =
|
||||
new HashMap<BigInteger, GdbMemoryMapping>();
|
||||
AddressSet addressSet = impl.getAddressFactory().getAddressSet();
|
||||
|
|
|
@ -27,6 +27,7 @@ import org.junit.Test;
|
|||
|
||||
import com.google.common.collect.Range;
|
||||
|
||||
import docking.widgets.table.RowWrappedEnumeratedColumnTableModel;
|
||||
import generic.Unique;
|
||||
import ghidra.app.plugin.core.debug.gui.AbstractGhidraHeadedDebuggerGUITest;
|
||||
import ghidra.app.plugin.core.debug.gui.DebuggerResources.*;
|
||||
|
@ -496,6 +497,13 @@ public class DebuggerBreakpointsProviderTest extends AbstractGhidraHeadedDebugge
|
|||
});
|
||||
}
|
||||
|
||||
protected static <R> List<R> copyModelData(
|
||||
RowWrappedEnumeratedColumnTableModel<?, ?, R, ?> model) {
|
||||
synchronized (model) {
|
||||
return List.copyOf(model.getModelData());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testActionFilters() throws Exception {
|
||||
createTestModel();
|
||||
|
@ -525,7 +533,7 @@ public class DebuggerBreakpointsProviderTest extends AbstractGhidraHeadedDebugge
|
|||
// Because mapping service debounces, wait for breakpoints to be reconciled
|
||||
LogicalBreakpointTableModel bptModel = breakpointsProvider.breakpointTableModel;
|
||||
waitForPass(() -> {
|
||||
List<LogicalBreakpointRow> data = bptModel.getModelData();
|
||||
List<LogicalBreakpointRow> data = copyModelData(bptModel);
|
||||
assertEquals(2, data.size());
|
||||
LogicalBreakpointRow row1 = data.get(0);
|
||||
LogicalBreakpointRow row2 = data.get(1);
|
||||
|
@ -548,7 +556,7 @@ public class DebuggerBreakpointsProviderTest extends AbstractGhidraHeadedDebugge
|
|||
assertEquals(2, lb2.getTraceBreakpoints().size());
|
||||
});
|
||||
|
||||
List<LogicalBreakpointRow> breakData = bptModel.getModelData();
|
||||
List<LogicalBreakpointRow> breakData = copyModelData(bptModel);
|
||||
List<BreakpointLocationRow> filtLocs =
|
||||
breakpointsProvider.locationFilterPanel.getTableFilterModel().getModelData();
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ public abstract class AbstractTargetObject<P extends TargetObject> implements Sp
|
|||
protected final String typeHint;
|
||||
protected final TargetObjectSchema schema;
|
||||
|
||||
protected boolean valid = true;
|
||||
protected volatile boolean valid = true;
|
||||
|
||||
// TODO: Remove these, and just do invocations on model's listeners?
|
||||
protected final ListenerSet<DebuggerModelListener> listeners;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue