Interface TraceBreakpointSpec
- All Superinterfaces:
TraceBreakpointCommon,TraceObjectInterface,TraceUniqueObject
- All Known Implementing Classes:
DBTraceBreakpointSpec
Note that a single specification could result in several locations, or no locations at all. For
example, a breakpoint placed on a function within a module which has not been loaded ("pending"
in GDB's nomenclature), will not have any location. On the other hand, a breakpoint expressed by
line number in a C++ template or a C macro could resolve to many addresses. The children of this
object include the resolved TraceBreakpointLocations. If the debugger does not share this
same concept, then its breakpoints should implement both the specification and the location; the
specification need not have any children.
This object extends TraceTogglable for a transitional period only. Implementations
whose breakpoint specifications can be toggled should declare this interface explicitly. When the
specification is user togglable, toggling it should effectively toggle all locations -- whether
or not the locations are user togglable.
NOTE: When enumerating trace breakpoints, use the locations, not the specifications.
-
Field Summary
FieldsFields inherited from interface ghidra.trace.model.target.iface.TraceObjectInterface
KEY_COMMENT, KEY_DISPLAY, KEY_KIND, KEY_MODIFIED, KEY_ORDER, KEY_SHORT_DISPLAY, KEY_TYPE, KEY_VALUE -
Method Summary
Modifier and TypeMethodDescriptiongetExpression(long snap) Get the expression used to specify this breakpoint.getKinds(long snap) Get the kinds included in this breakpointCollection<? extends TraceBreakpointLocation> getLocations(long snap) Get the locations for this breakpointvoidsetKinds(long snap, Collection<TraceBreakpointKind> kinds) Set the kinds included in this breakpointvoidsetKinds(Lifespan lifespan, Collection<TraceBreakpointKind> kinds) Set the kinds included in this breakpointMethods inherited from interface ghidra.trace.model.breakpoint.TraceBreakpointCommon
delete, getComment, getName, getPath, getTrace, isAlive, isEnabled, isValid, remove, setComment, setComment, setEnabled, setEnabled, setName, setNameMethods inherited from interface ghidra.trace.model.target.iface.TraceObjectInterface
getObjectMethods inherited from interface ghidra.trace.model.TraceUniqueObject
getObjectKey, isDeleted
-
Field Details
-
KEY_EXPRESSION
- See Also:
-
KEY_KINDS
- See Also:
-
KEY_AS_BPT
- See Also:
-
-
Method Details
-
getExpression
Get the expression used to specify this breakpoint.- Parameters:
snap- the snap- Returns:
- the expression
-
setKinds
Set the kinds included in this breakpointSee
getKinds(long). Note that it is unusual for a breakpoint to change kinds during its life. Nevertheless, in the course of recording a trace, it may happen, or at least appear to happen.- Parameters:
lifespan- the span of timekinds- the set of kinds
-
setKinds
Set the kinds included in this breakpointSee
getKinds(long). Note that it is unusual for a breakpoint to change kinds during its life. Nevertheless, in the course of recording a trace, it may happen, or at least appear to happen.- Parameters:
snap- the snapkinds- the set of kinds
-
getKinds
Get the kinds included in this breakpointFor example, an "access breakpoint" or "access watchpoint," depending on terminology, would include both
TraceBreakpointKind.READandTraceBreakpointKind.WRITE.- Parameters:
snap- the snap- Returns:
- the set of kinds
-
getLocations
Get the locations for this breakpoint- Parameters:
snap- the snap- Returns:
- the locations
-