Package ghidra.trace.database
Class DBTrace
- All Implemented Interfaces:
ErrorHandler,DataTypeManagerOwner,DomainObject,DataTypeManagerDomainObject,Trace,TraceChangeManager
-
Nested Class Summary
Nested classes/interfaces inherited from class ghidra.framework.data.DBDomainObjectSupport
DBDomainObjectSupport.ManagerSupplier<T>Nested classes/interfaces inherited from interface ghidra.trace.model.Trace
Trace.TraceProgramViewListener -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected DBTraceAddressPropertyManagerprotected static final Stringprotected static final Stringprotected TraceAddressFactoryprotected CompilerSpecprotected Languageprotected DBTraceBookmarkManagerprotected DBTraceBreakpointManagerprotected DBTraceCodeManagerprotected DBTraceCommentAdapterprotected DBTraceDataSettingsAdapterprotected DBTraceDataTypeManagerprotected static final Stringprotected static final intprotected static final intprotected ListenerSet<DBTraceDirectChangeListener> protected static final Stringprotected DBTraceEquateManagerprotected static final Stringprotected Map<Long, DBTraceProgramView> protected List<DBTraceManager> protected DBTraceMemoryManagerprotected DBTraceModuleManagerprotected static final Stringprotected DBTraceObjectManagerprotected DBTraceOverlaySpaceAdapterprotected static final Stringprotected DBTracePlatformManagerprotected DBTraceVariableSnapProgramViewprotected Set<DBTraceVariableSnapProgramView> protected Set<TraceProgramView> protected booleanprotected DBTraceReferenceManagerprotected DBTraceRegisterContextManagerprotected DBTraceStackManagerprotected DBTraceStaticMappingManagerprotected DBTraceSymbolManagerprotected DBTraceThreadManagerprotected DBTraceTimeManagerprotected static final Stringprotected DBTraceChangeSetprotected ListenerSet<Trace.TraceProgramViewListener> protected Set<DBTraceTimeViewport> Fields inherited from class ghidra.util.database.DBCachedDomainObjectAdapter
rwLockFields inherited from class ghidra.framework.data.DomainObjectAdapterDB
changeSet, dbh, NUM_UNDOS, optionsFields inherited from class ghidra.framework.data.DomainObjectAdapter
changed, changeSupportMap, DEFAULT_NAME, lock, metadata, name, temporaryFields inherited from interface ghidra.framework.model.DomainObject
DO_DOMAIN_FILE_CHANGED, DO_OBJECT_CLOSED, DO_OBJECT_ERROR, DO_OBJECT_RENAMED, DO_OBJECT_RESTORED, DO_OBJECT_SAVED, DO_PROPERTY_CHANGED, undoLockFields inherited from interface ghidra.trace.model.Trace
TRACE_ICON -
Constructor Summary
ConstructorsConstructorDescriptionDBTrace(DBHandle dbh, OpenMode openMode, TaskMonitor monitor, Object consumer) DBTrace(String name, CompilerSpec baseCompilerSpec, Object consumer) -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidprotected voidallViewports(Consumer<DBTraceTimeViewport> action) protected voidallViews(Consumer<DBTraceProgramView> action) voidvoidvoidcategoryAdded(long addedID, Category addedCategory) voidcategoryDeleted(long deletedID, CategoryPath deletedPath) voidcategoryMoved(long movedID, CategoryPath oldPath, CategoryPath newPath) voidcategoryRenamed(long renamedID, String oldName, String newName) protected voidclearCache(boolean all) protected voidclose()protected DBTraceAddressPropertyManagercreateAddressPropertyManager(DBTraceThreadManager threadManager) protected DBTraceBookmarkManagercreateBookmarkManager(DBTraceThreadManager threadManager) protected DBTraceBreakpointManagercreateBreakpointManager(DBTraceObjectManager objectManager) protected DBTraceCodeManagercreateCodeManager(DBTraceThreadManager threadManager, DBTracePlatformManager platformManager, DBTraceDataTypeManager dataTypeManager, DBTraceOverlaySpaceAdapter overlayAdapter, DBTraceReferenceManager referenceManager) protected DBTraceCommentAdaptercreateCommentAdapter(DBTraceThreadManager threadManager) protected DBTraceDataSettingsAdaptercreateDataSettingsAdapter(DBTraceThreadManager threadManager) protected DBTraceDataTypeManagercreateDataTypeManager(DBTracePlatformManager platformManager) protected DBTraceEquateManagercreateEquateManager(DBTraceThreadManager threadManager) protected DBTraceMemoryManagercreateMemoryManager(DBTraceThreadManager threadManager, DBTraceOverlaySpaceAdapter overlayAdapter) protected DBTraceModuleManagercreateModuleManager(DBTraceObjectManager objectManager) protected DBTraceObjectManagerprotected DBTraceOverlaySpaceAdapterprotected DBTracePlatformManagercreateProgramView(long snap) protected DBTraceReferenceManagercreateReferenceManager(DBTraceThreadManager threadManager, DBTraceOverlaySpaceAdapter overlayAdapter) protected DBTraceRegisterContextManagercreateRegisterContextManager(DBTraceThreadManager threadManager, DBTracePlatformManager platformManager) protected DBTraceStackManagercreateStackManager(DBTraceThreadManager threadManager, DBTraceOverlaySpaceAdapter overlayAdapter) protected DBTraceStaticMappingManagercreateStaticMappingManager(DBTraceOverlaySpaceAdapter overlayAdapter) protected DBTraceSymbolManagercreateSymbolManager(DBTraceThreadManager threadManager, DBTraceDataTypeManager dataTypeManager, DBTraceOverlaySpaceAdapter overlayAdapter) protected DBTraceThreadManagercreateThreadManager(DBTraceObjectManager objectManager) protected DBTraceTimeManagercreateTimeManager(DBTraceThreadManager threadManager) protected <T extends DBTraceManager>
TcreateTraceManager(String managerName, DBDomainObjectSupport.ManagerSupplier<T> supplier) voiddataTypeAdded(long addedID, DataType addedType) voiddataTypeChanged(long changedID, DataType changedType) voiddataTypeDeleted(long deletedID, DataTypePath deletedPath) voiddataTypeMoved(long movedID, DataTypePath oldPath, DataTypePath newPath) voiddataTypeNameChanged(long renamedID, String oldName, String newName) voiddataTypeReplaced(long replacedID, DataTypePath replacedPath, DataTypePath newPath) voidNotification that an IO exception occurred.protected voidIndicates that this domain object has been restored to a completely different state due to a transaction undo/redo/rollback or a database merge operation.voidFires the specified event.Collect all program views, fixed or variable, of this trace.Returns the change set corresponding to all unsaved changes in this domain object.Returns a word or short phrase that best describes or categorizes the object in terms that a user will understand.longgetFixedProgramView(long snap) Get the "canonical" program view for this traceprotected voidinitOptions(OpenMode openMode) booleanReturns true if changes are permitted.booleanlockRead()voidvoidvoidsave(String comment, TaskMonitor monitor) Saves changes to the DomainFile.voidsaveToPackedFile(File outputFile, TaskMonitor monitor) Saves (i.e., serializes) the current content to a packed file.protected voidsetChanged(boolean b) voidsetChanged(TraceChangeRecord<?, ?> event) voidsetEmulatorCacheVersion(long version) voidsetExecutablePath(String path) protected voidsetTraceUserData(DBTraceUserData traceUserData) voidsourceArchiveAdded(UniversalID sourceArchiveID) voidsourceArchiveChanged(UniversalID sourceArchiveID) voidupdateViewportsSnapshotAdded(TraceSnapshot snapshot) voidupdateViewportsSnapshotChanged(TraceSnapshot snapshot) voidupdateViewportsSnapshotDeleted(TraceSnapshot snapshot) voidvoidvoidvoidupdateViewsChangeRegionBlockFlags(TraceMemoryRegion region, Lifespan lifespan) voidupdateViewsChangeRegionBlockLifespan(TraceMemoryRegion region, Lifespan oldLifespan, Lifespan newLifespan) voidvoidupdateViewsChangeRegionBlockRange(TraceMemoryRegion region, AddressRange oldRange, AddressRange newRange) voidvoidvoidMethods inherited from class ghidra.util.database.DBCachedDomainObjectAdapter
getReadWriteLockMethods inherited from class ghidra.framework.data.DBDomainObjectSupport
createManager, finishedCreatingManagers, initMethods inherited from class ghidra.framework.data.DomainObjectAdapterDB
addSynchronizedDomainObject, addTransactionListener, canLock, canRedo, canSave, canUndo, clearUndo, clearUndo, endTransaction, flushWriteCache, forceLock, getAllRedoNames, getAllUndoNames, getCurrentTransactionInfo, getDBHandle, getOptions, getOptionsNames, getRedoName, getSynchronizedDomainObjects, getUndoName, getUndoStackDepth, getUserData, hasTerminatedTransaction, invalidate, invalidateWriteCache, isChanged, isClosed, isLocked, loadMetadata, lock, openTransaction, performPropertyListAlterations, propertyChanged, redo, releaseSynchronizedDomainObject, removeTransactionListener, saveMetadata, setImmutable, startTransaction, startTransaction, undo, unlock, updateMetadataMethods inherited from class ghidra.framework.data.DomainObjectAdapter
addCloseListener, addConsumer, addDomainFileListener, addListener, checkExclusiveAccess, createPrivateEventQueue, fatalErrorOccurred, flushEvents, flushPrivateEventQueue, getAssociatedUserFilesystem, getChangeStatus, getConsumerList, getContentHandler, getContentHandler, getContentHandler, getContentHandlers, getDomainFile, getLock, getMetadata, getModificationNumber, getName, hasExclusiveAccess, isSendingEvents, isTemporary, isUsedBy, release, removeCloseListener, removeDomainFileListener, removeListener, removePrivateEventQueue, setDomainFile, setEventsEnabled, setName, setTemporary, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface ghidra.framework.model.DomainObject
addCloseListener, addConsumer, addDomainFileListener, addListener, addSynchronizedDomainObject, addTransactionListener, canLock, canRedo, canSave, canUndo, clearUndo, createPrivateEventQueue, endTransaction, flushEvents, flushPrivateEventQueue, forceLock, getAllRedoNames, getAllUndoNames, getConsumerList, getCurrentTransactionInfo, getDomainFile, getMetadata, getModificationNumber, getName, getOptions, getOptionsNames, getRedoName, getSynchronizedDomainObjects, getUndoName, hasExclusiveAccess, hasTerminatedTransaction, isChanged, isClosed, isLocked, isSendingEvents, isTemporary, isUsedBy, lock, openTransaction, redo, release, releaseSynchronizedDomainObject, removeCloseListener, removeDomainFileListener, removeListener, removePrivateEventQueue, removeTransactionListener, setEventsEnabled, setName, setTemporary, startTransaction, startTransaction, undo, unlock, withTransaction, withTransactionMethods inherited from interface ghidra.trace.model.Trace
getDataTypeManager
-
Field Details
-
TRACE_INFO
- See Also:
-
NAME
- See Also:
-
DATE_CREATED
- See Also:
-
BASE_LANGUAGE
- See Also:
-
BASE_COMPILER
- See Also:
-
PLATFORM
- See Also:
-
EXECUTABLE_PATH
- See Also:
-
EMU_CACHE_VERSION
- See Also:
-
DB_TIME_INTERVAL
protected static final int DB_TIME_INTERVAL- See Also:
-
DB_BUFFER_SIZE
protected static final int DB_BUFFER_SIZE- See Also:
-
managers
-
addressPropertyManager
-
bookmarkManager
-
breakpointManager
-
codeManager
-
commentAdapter
-
dataSettingsAdapter
-
dataTypeManager
-
equateManager
-
platformManager
-
memoryManager
-
moduleManager
-
objectManager
-
overlaySpaceAdapter
-
referenceManager
-
registerContextManager
-
stackManager
-
staticMappingManager
-
symbolManager
-
threadManager
-
timeManager
-
baseLanguage
-
baseCompilerSpec
-
baseAddressFactory
-
traceChangeSet
-
recordChanges
protected boolean recordChanges -
viewports
-
directListeners
-
programView
-
programViews
-
programViewsView
-
fixedProgramViews
-
viewListeners
-
-
Constructor Details
-
DBTrace
public DBTrace(String name, CompilerSpec baseCompilerSpec, Object consumer) throws IOException, LanguageNotFoundException - Throws:
IOExceptionLanguageNotFoundException
-
DBTrace
public DBTrace(DBHandle dbh, OpenMode openMode, TaskMonitor monitor, Object consumer) throws CancelledException, VersionException, IOException, LanguageNotFoundException
-
-
Method Details
-
initOptions
- Throws:
IOExceptionCancelledException
-
dbError
Description copied from interface:ErrorHandlerNotification that an IO exception occurred.- Specified by:
dbErrorin interfaceErrorHandler- Overrides:
dbErrorin classDomainObjectAdapterDB- Parameters:
e-IOExceptionwhich was cause of error
-
assertValidAddress
-
assertValidSpace
-
getChangeSet
Description copied from class:DomainObjectAdapterDBReturns the change set corresponding to all unsaved changes in this domain object.- Overrides:
getChangeSetin classDomainObjectAdapterDB- Returns:
- the change set corresponding to all unsaved changes in this domain object
-
getStoreFactory
-
getDescription
Description copied from interface:DomainObjectReturns a word or short phrase that best describes or categorizes the object in terms that a user will understand.- Specified by:
getDescriptionin interfaceDomainObject- Specified by:
getDescriptionin classDomainObjectAdapter- Returns:
- the description
-
createTraceManager
protected <T extends DBTraceManager> T createTraceManager(String managerName, DBDomainObjectSupport.ManagerSupplier<T> supplier) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createAddressPropertyManager
protected DBTraceAddressPropertyManager createAddressPropertyManager(DBTraceThreadManager threadManager) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createBookmarkManager
protected DBTraceBookmarkManager createBookmarkManager(DBTraceThreadManager threadManager) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createBreakpointManager
protected DBTraceBreakpointManager createBreakpointManager(DBTraceObjectManager objectManager) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createCodeManager
protected DBTraceCodeManager createCodeManager(DBTraceThreadManager threadManager, DBTracePlatformManager platformManager, DBTraceDataTypeManager dataTypeManager, DBTraceOverlaySpaceAdapter overlayAdapter, DBTraceReferenceManager referenceManager) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createCommentAdapter
protected DBTraceCommentAdapter createCommentAdapter(DBTraceThreadManager threadManager) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createDataSettingsAdapter
protected DBTraceDataSettingsAdapter createDataSettingsAdapter(DBTraceThreadManager threadManager) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createDataTypeManager
protected DBTraceDataTypeManager createDataTypeManager(DBTracePlatformManager platformManager) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createEquateManager
protected DBTraceEquateManager createEquateManager(DBTraceThreadManager threadManager) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createPlatformManager
- Throws:
CancelledExceptionIOException
-
createMemoryManager
protected DBTraceMemoryManager createMemoryManager(DBTraceThreadManager threadManager, DBTraceOverlaySpaceAdapter overlayAdapter) throws IOException, CancelledException - Throws:
IOExceptionCancelledException
-
createModuleManager
protected DBTraceModuleManager createModuleManager(DBTraceObjectManager objectManager) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createObjectManager
- Throws:
CancelledExceptionIOException
-
createOverlaySpaceAdapter
protected DBTraceOverlaySpaceAdapter createOverlaySpaceAdapter() throws CancelledException, IOException- Throws:
CancelledExceptionIOException
-
createReferenceManager
protected DBTraceReferenceManager createReferenceManager(DBTraceThreadManager threadManager, DBTraceOverlaySpaceAdapter overlayAdapter) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createRegisterContextManager
protected DBTraceRegisterContextManager createRegisterContextManager(DBTraceThreadManager threadManager, DBTracePlatformManager platformManager) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createStackManager
protected DBTraceStackManager createStackManager(DBTraceThreadManager threadManager, DBTraceOverlaySpaceAdapter overlayAdapter) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createStaticMappingManager
protected DBTraceStaticMappingManager createStaticMappingManager(DBTraceOverlaySpaceAdapter overlayAdapter) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createSymbolManager
protected DBTraceSymbolManager createSymbolManager(DBTraceThreadManager threadManager, DBTraceDataTypeManager dataTypeManager, DBTraceOverlaySpaceAdapter overlayAdapter) throws CancelledException, IOException - Throws:
CancelledExceptionIOException
-
createThreadManager
protected DBTraceThreadManager createThreadManager(DBTraceObjectManager objectManager) throws IOException, CancelledException - Throws:
IOExceptionCancelledException
-
createTimeManager
protected DBTraceTimeManager createTimeManager(DBTraceThreadManager threadManager) throws IOException, CancelledException - Throws:
IOExceptionCancelledException
-
getBaseLanguage
- Specified by:
getBaseLanguagein interfaceTrace
-
getBaseCompilerSpec
- Specified by:
getBaseCompilerSpecin interfaceTrace
-
setTraceUserData
-
setChanged
protected void setChanged(boolean b) - Overrides:
setChangedin classDomainObjectAdapterDB
-
isChangeable
public boolean isChangeable()Description copied from interface:DomainObjectReturns true if changes are permitted.- Specified by:
isChangeablein interfaceDomainObject- Returns:
- true if changes are permitted.
-
getBaseAddressFactory
- Specified by:
getBaseAddressFactoryin interfaceTrace
-
getInternalAddressFactory
-
getAddressPropertyManager
- Specified by:
getAddressPropertyManagerin interfaceTrace
-
getInternalAddressPropertyManager
-
getBookmarkManager
- Specified by:
getBookmarkManagerin interfaceTrace
-
getBreakpointManager
- Specified by:
getBreakpointManagerin interfaceTrace
-
getCodeManager
- Specified by:
getCodeManagerin interfaceTrace
-
getCommentAdapter
-
getDataSettingsAdapter
-
getBaseDataTypeManager
- Specified by:
getBaseDataTypeManagerin interfaceTrace
-
getEquateManager
- Specified by:
getEquateManagerin interfaceTrace
-
getPlatformManager
- Specified by:
getPlatformManagerin interfaceTrace
-
getMemoryManager
- Specified by:
getMemoryManagerin interfaceTrace
-
getModuleManager
- Specified by:
getModuleManagerin interfaceTrace
-
getObjectManager
- Specified by:
getObjectManagerin interfaceTrace
-
getOverlaySpaceAdapter
-
getReferenceManager
- Specified by:
getReferenceManagerin interfaceTrace
-
getRegisterContextManager
- Specified by:
getRegisterContextManagerin interfaceTrace
-
getStackManager
- Specified by:
getStackManagerin interfaceTrace
-
getStaticMappingManager
- Specified by:
getStaticMappingManagerin interfaceTrace
-
getSymbolManager
- Specified by:
getSymbolManagerin interfaceTrace
-
getThreadManager
- Specified by:
getThreadManagerin interfaceTrace
-
getTimeManager
- Specified by:
getTimeManagerin interfaceTrace
-
setChanged
- Specified by:
setChangedin interfaceTraceChangeManager
-
fireEvent
Description copied from class:DomainObjectAdapterFires the specified event.- Overrides:
fireEventin classDomainObjectAdapter- Parameters:
ev- event to fire
-
addDirectChangeListener
-
removeDirectChangeListener
-
getFixedProgramView
- Specified by:
getFixedProgramViewin interfaceTrace
-
createProgramView
- Specified by:
createProgramViewin interfaceTrace
-
getProgramView
Description copied from interface:TraceGet the "canonical" program view for this traceThis view is the view returned, e.g., by
TraceCodeUnit.getProgram(), no matter which view was actually used to retrieve that unit.- Specified by:
getProgramViewin interfaceTrace- Returns:
- the canonical program view
-
createTimeViewport
- Specified by:
createTimeViewportin interfaceTrace
-
lockRead
-
lockWrite
-
sourceArchiveChanged
-
sourceArchiveAdded
-
dataTypeChanged
-
dataTypeAdded
-
dataTypeReplaced
-
dataTypeMoved
-
dataTypeNameChanged
-
dataTypeDeleted
-
categoryAdded
-
categoryMoved
-
categoryRenamed
-
categoryDeleted
-
clearCache
protected void clearCache(boolean all) - Overrides:
clearCachein classDomainObjectAdapterDB
-
setExecutablePath
-
getExecutablePath
-
getCreationDate
-
setEmulatorCacheVersion
public void setEmulatorCacheVersion(long version) - Specified by:
setEmulatorCacheVersionin interfaceTrace
-
getEmulatorCacheVersion
public long getEmulatorCacheVersion()- Specified by:
getEmulatorCacheVersionin interfaceTrace
-
getAllProgramViews
Description copied from interface:TraceCollect all program views, fixed or variable, of this trace.- Specified by:
getAllProgramViewsin interfaceTrace- Returns:
- the current set of program views
-
allViewports
-
allViews
-
addProgramViewListener
- Specified by:
addProgramViewListenerin interfaceTrace
-
removeProgramViewListener
- Specified by:
removeProgramViewListenerin interfaceTrace
-
updateViewsAddRegionBlock
-
updateViewsChangeRegionBlockName
-
updateViewsChangeRegionBlockFlags
-
updateViewsChangeRegionBlockRange
public void updateViewsChangeRegionBlockRange(TraceMemoryRegion region, AddressRange oldRange, AddressRange newRange) -
updateViewsChangeRegionBlockLifespan
public void updateViewsChangeRegionBlockLifespan(TraceMemoryRegion region, Lifespan oldLifespan, Lifespan newLifespan) -
updateViewsDeleteRegionBlock
-
updateViewsAddSpaceBlock
-
updateViewsDeleteSpaceBlock
-
updateViewsRefreshBlocks
public void updateViewsRefreshBlocks() -
updateViewsBytesChanged
-
updateViewportsSnapshotAdded
-
updateViewportsSnapshotChanged
-
updateViewportsSnapshotDeleted
-
save
Description copied from interface:DomainObjectSaves changes to the DomainFile.- Specified by:
savein interfaceDomainObject- Overrides:
savein classDomainObjectAdapterDB- Parameters:
comment- comment used for new versionmonitor- monitor that shows the progress of the save- Throws:
IOException- thrown if there was an error accessing this domain objectCancelledException- thrown if the user canceled the save operation
-
saveToPackedFile
public void saveToPackedFile(File outputFile, TaskMonitor monitor) throws IOException, CancelledException Description copied from interface:DomainObjectSaves (i.e., serializes) the current content to a packed file.- Specified by:
saveToPackedFilein interfaceDomainObject- Overrides:
saveToPackedFilein classDomainObjectAdapterDB- Parameters:
outputFile- packed output filemonitor- progress monitor- Throws:
IOException- if an exception occursCancelledException- if the user cancels
-
isClosing
public boolean isClosing() -
close
protected void close()- Overrides:
closein classDomainObjectAdapterDB
-
domainObjectRestored
protected void domainObjectRestored()Description copied from class:DomainObjectAdapterDBIndicates that this domain object has been restored to a completely different state due to a transaction undo/redo/rollback or a database merge operation.- Overrides:
domainObjectRestoredin classDomainObjectAdapterDB
-