Package ghidra.app.util.opinion
Class DecompileDebugXmlLoader
java.lang.Object
ghidra.app.util.opinion.AbstractProgramLoader
ghidra.app.util.opinion.DecompileDebugXmlLoader
- All Implemented Interfaces:
Loader,ExtensionPoint,Comparable<Loader>
Loader for handling XML files generated by the Decompiler on the central function that was in the
Decompiler pane when the Debug Function Decompilation feature in the Decompiler is used.
Reference @DecompileDebug.java for the generation of the XML file.
-
Nested Class Summary
Nested classes/interfaces inherited from interface ghidra.app.util.opinion.Loader
Loader.ImporterSettings -
Field Summary
FieldsFields inherited from class ghidra.app.util.opinion.AbstractProgramLoader
ANCHOR_LABELS_OPTION_NAME, APPLY_LABELS_OPTION_NAMEFields inherited from interface ghidra.app.util.opinion.Loader
COMMAND_LINE_ARG_PREFIX, loggingDisabled, OPTIONS_PROJECT_SAVE_STATE_KEY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfindSupportedLoadSpecs(ByteProvider provider) If thisLoadersupports loading the givenByteProvider, this methods returns aCollectionof all supportedLoadSpecs that contain discovered load specification information that thisLoaderwill need to load.getName()getTier()For ordering purposes; lower tier numbers are more important (and listed first).intFor ordering purposes; lower numbers are more important (and listed first, within its tier).loadProgram(Loader.ImporterSettings settings) After initial parsing of the XML file, load the details into a new program for loading/viewing in Ghidra.protected voidloadProgramInto(Program program, Loader.ImporterSettings settings) Loads program bytes into the specifiedProgram.Methods inherited from class ghidra.app.util.opinion.AbstractProgramLoader
addExternalBlock, createDefaultMemoryBlocks, createProgram, createProgram, generateBlockName, getDefaultOptions, getLanguageService, load, loadInto, markAsFunction, postLoadCleanup, postLoadProgramFixups, setProgramProperties, shouldApplyProcessorLabelsByDefault, validateOptionsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ghidra.app.util.opinion.Loader
compareTo, getPreferredFileName, loadsIntoNewFolder, supportsLoadIntoProgram, supportsLoadIntoProgram
-
Field Details
-
DECOMPILER_DEBUG_SRC_NAME
- See Also:
-
-
Constructor Details
-
DecompileDebugXmlLoader
public DecompileDebugXmlLoader()
-
-
Method Details
-
getName
Description copied from interface:LoaderGets theLoader's name, which is used both for display purposes, and to identify theLoaderin the opinion files.- Returns:
- The
Loader's name.
-
getTier
Description copied from interface:LoaderFor ordering purposes; lower tier numbers are more important (and listed first).- Returns:
- the tier of the loader
-
getTierPriority
public int getTierPriority()Description copied from interface:LoaderFor ordering purposes; lower numbers are more important (and listed first, within its tier).- Returns:
- the ordering of the loader within its tier
-
findSupportedLoadSpecs
Description copied from interface:LoaderIf thisLoadersupports loading the givenByteProvider, this methods returns aCollectionof all supportedLoadSpecs that contain discovered load specification information that thisLoaderwill need to load. If thisLoadercannot support loading the givenByteProvider, an emptyCollectionis returned.- Parameters:
provider- The bytes being loaded.- Returns:
- A
CollectionofLoadSpecs that thisLoadersupports loading, or an emptyCollectionif thisLoaderdoesn't support loading the givenByteProvider. - Throws:
IOException- if there was an IO-related issue finding theLoadSpecs.
-
loadProgram
protected List<Loaded<Program>> loadProgram(Loader.ImporterSettings settings) throws IOException, CancelledException After initial parsing of the XML file, load the details into a new program for loading/viewing in Ghidra.
Loads bytes in a particular format as a newLoadedProgram. MultiplePrograms may end up getting created, depending on the nature of the format.Note that when the load completes, the returned
LoadedPrograms are not saved to a project. That is the responsibility of the caller (seeLoaded.save(TaskMonitor)).It is also the responsibility of the caller to close the returned
LoadedPrograms withLoaded.close()when they are no longer needed.- Specified by:
loadProgramin classAbstractProgramLoader- Parameters:
settings- TheLoader.ImporterSettings.- Returns:
- A
Listof one or moreLoadedPrograms (created but not saved). - Throws:
IOException- if there was an IO-related problem loading.CancelledException- if the user cancelled the load.
-
loadProgramInto
protected void loadProgramInto(Program program, Loader.ImporterSettings settings) throws IOException, LoadException, CancelledException Description copied from class:AbstractProgramLoaderLoads program bytes into the specifiedProgram. This method will not create any newPrograms. It is only for adding to an existingProgram.NOTE: The loading that occurs in this method will automatically be done in a transaction.
- Specified by:
loadProgramIntoin classAbstractProgramLoader- Parameters:
program- TheProgramto load into.settings- TheLoader.ImporterSettings.- Throws:
IOException- if there was an IO-related problem loading.LoadException- if the load failed in an expected way.CancelledException- if the user cancelled the load.
-