NationalSecurityAgency/ghidra · error · IllegalArgumentException
Cannot find path to breakpoint specifications
Error message
Cannot find path to breakpoint specifications
What it means
Thrown by computePath when the container schema's searchFor(TraceBreakpointSpec.class, true) returns a null PathFilter, meaning the schema has no path to any object implementing the breakpoint specification interface. The path computation cannot proceed without knowing where specs live.
Source
Thrown at Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/breakpoint/PlaceEmuBreakpointActionItem.java:83
private TraceObject findBreakpointContainer() {
TraceMemoryRegion region = findRegion();
if (region == null) {
throw new IllegalArgumentException("Address does not belong to a memory in the trace");
}
return region.getObject().findSuitableContainerInterface(TraceBreakpointSpec.class);
}
private String computePath() {
String name = createName(address);
TraceObject container = findBreakpointContainer();
if (container == null) {
throw new IllegalArgumentException(
"Address is not associated with a breakpoint container");
}
PathFilter specFilter = container.getSchema().searchFor(TraceBreakpointSpec.class, true);
if (specFilter == null) {
throw new IllegalArgumentException("Cannot find path to breakpoint specifications");
}
KeyPath specRelPath = specFilter.applyKeys(name).getSingletonPath();
if (specRelPath == null) {
throw new IllegalArgumentException("Too many wildcards to breakpoint specification");
}
PathFilter locFilter = container.getSchema()
.getSuccessorSchema(specRelPath)
.searchFor(TraceBreakpointLocation.class, true);
if (locFilter == null) {
throw new IllegalArgumentException("Cannot find path to breakpoint locations");
}
KeyPath locRelPath = locFilter.applyIntKeys(0).getSingletonPath();
if (locRelPath == null) {
throw new IllegalArgumentException("Too many wildcards to breakpoint location");
}
return container.getCanonicalPath().extend(specRelPath).extend(locRelPath).toString();
}
View on GitHub (pinned to d5f144c24d)
Solutions
- Use the standard managed-object schema that defines breakpoint specification paths.
- Recreate the trace with the debugger's default schema so searchFor(TraceBreakpointSpec.class) resolves.
- Verify the schema includes a TraceBreakpointSpec-typed element reachable from the container.
- Do not offer the 'Place Emulated Breakpoint' action for schemas lacking breakpoint support.
Example fix
// before
PathFilter specFilter = container.getSchema().searchFor(TraceBreakpointSpec.class, true);
if (specFilter == null) throw ...; // 'Cannot find path to breakpoint specifications'
// after (precondition check)
if (container.getSchema().searchFor(TraceBreakpointSpec.class, true) == null) {
throw new IllegalStateException(
"Trace schema does not support breakpoint specifications: " + container);
} Defensive patterns
Strategy: validation
Validate before calling
PathFilter f = container.getSchema().searchFor(TraceBreakpointSpec.class, true); boolean ok = f != null;
Type guard
static boolean schemaHasSpecPath(TraceObject container) {
return container.getSchema().searchFor(TraceBreakpointSpec.class, true) != null;
} Try / catch
try {
item.execute();
} catch (IllegalArgumentException e) {
Msg.showError(this, null, "Schema missing specs", e.getMessage());
} Prevention
- Adopt the default debugger schema that defines breakpoint spec paths.
- Validate schema breakpoint support before use.
When it happens
Trigger: container.getSchema().searchFor(TraceBreakpointSpec.class, true) returns null on a schema that does not model breakpoint specifications at all.
Common situations: A trace object schema that omits the breakpoint specification element; a schema variant for a target type that does not support breakpoints; corrupted or hand-built trace schemas.
Related errors
- Cannot find path to breakpoint locations
- Too many wildcards to breakpoint specification
- Too many wildcards to breakpoint location
- Address does not belong to a memory in the trace
- Address is not associated with a breakpoint container
AI-assisted analysis of NationalSecurityAgency/ghidra@d5f144c24d (2026-08-14).
Data as JSON: /api/errors/d9770867bb5c6df5.
Report an issue: GitHub.