Package ghidra.app.util.opinion
Class DbgLoader
- java.lang.Object
-
- ghidra.app.util.opinion.AbstractProgramLoader
-
- ghidra.app.util.opinion.AbstractLibrarySupportLoader
-
- ghidra.app.util.opinion.DbgLoader
-
- All Implemented Interfaces:
Loader,ExtensionPoint,java.lang.Comparable<Loader>
public class DbgLoader extends AbstractLibrarySupportLoader
An opinion service for processing Microsoft DBG files.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface ghidra.util.classfinder.ExtensionPoint
ExtensionPoint.Exclude, ExtensionPoint.Util
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringDBG_NAMEDBG files are portable executable (PE) format files that contain debug information in Codeview format for the Visual Studio debugger (and possibly other formats, depending on how the DBG was created).-
Fields inherited from class ghidra.app.util.opinion.AbstractLibrarySupportLoader
LIB_OPTION_NAME, SYM_OPTION_NAME
-
Fields inherited from class ghidra.app.util.opinion.AbstractProgramLoader
ANCHOR_LABELS_OPTION_NAME, APPLY_LABELS_OPTION_NAME
-
Fields inherited from interface ghidra.app.util.opinion.Loader
COMMAND_LINE_ARG_PREFIX
-
-
Constructor Summary
Constructors Constructor Description DbgLoader()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Collection<LoadSpec>findSupportedLoadSpecs(ByteProvider provider)If thisLoadersupports loading the givenByteProvider, this methods returns aCollectionof all supportedLoadSpecs that contain discovered load specification information that thisLoaderwill need to load.java.lang.StringgetName()protected booleanhasComment(int type, Address address)voidload(ByteProvider provider, LoadSpec loadSpec, java.util.List<Option> options, Program prog, TaskMonitor monitor, MessageLog log)Loads bytes in a particular format into the givenProgram.protected voidprocessComments(Listing listing, TaskMonitor monitor)protected voidprocessDebug(DebugDirectoryParser parser, FileHeader fileHeader, java.util.Map<SectionHeader,Address> sectionToAddress, Program program, TaskMonitor monitor)protected booleanprocessDebugCoffSymbol(DebugCOFFSymbol symbol, FileHeader fileHeader, java.util.Map<SectionHeader,Address> sectionToAddress, Program program, TaskMonitor monitor)protected voidsetComment(int type, Address address, java.lang.String comment)booleansupportsLoadIntoProgram()-
Methods inherited from class ghidra.app.util.opinion.AbstractLibrarySupportLoader
createExportsFile, findAlreadyImportedLibrary, getDefaultOptions, getLoadSpec, getTier, getTierPriority, importLibrary, importLibrary, isCaseInsensitiveLibraryFilenames, loadProgram, loadProgramInto, postLoadProgramFixups, validateOptions
-
Methods inherited from class ghidra.app.util.opinion.AbstractProgramLoader
createDefaultMemoryBlocks, createProgram, generateBlockName, getLanguageService, load, loadInto, release, shouldApplyProcessorLabelsByDefault
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface ghidra.app.util.opinion.Loader
compareTo, getPreferredFileName
-
-
-
-
Field Detail
-
DBG_NAME
public static final java.lang.String DBG_NAME
DBG files are portable executable (PE) format files that contain debug information in Codeview format for the Visual Studio debugger (and possibly other formats, depending on how the DBG was created). When you do not have source for certain code, such libraries or Windows APIs, DBG files permit debugging. DBG files also permit you to do OLE RPC debugging. Microsoft Corporation. All rights reserved.- See Also:
- Constant Field Values
-
-
Method Detail
-
findSupportedLoadSpecs
public java.util.Collection<LoadSpec> findSupportedLoadSpecs(ByteProvider provider) throws java.io.IOException
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:
java.io.IOException- if there was an IO-related issue finding theLoadSpecs.
-
load
public void load(ByteProvider provider, LoadSpec loadSpec, java.util.List<Option> options, Program prog, TaskMonitor monitor, MessageLog log) throws java.io.IOException
Description copied from class:AbstractLibrarySupportLoaderLoads bytes in a particular format into the givenProgram.- Specified by:
loadin classAbstractLibrarySupportLoader- Parameters:
provider- The bytes to load.loadSpec- TheLoadSpecto use during load.options- The load options.prog- TheProgramto load into.monitor- A cancelable task monitor.log- The message log.- Throws:
java.io.IOException- if there was an IO-related problem loading.
-
getName
public java.lang.String 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.
-
supportsLoadIntoProgram
public boolean supportsLoadIntoProgram()
Description copied from interface:Loader
-
processComments
protected void processComments(Listing listing, TaskMonitor monitor)
-
processDebug
protected void processDebug(DebugDirectoryParser parser, FileHeader fileHeader, java.util.Map<SectionHeader,Address> sectionToAddress, Program program, TaskMonitor monitor)
-
processDebugCoffSymbol
protected boolean processDebugCoffSymbol(DebugCOFFSymbol symbol, FileHeader fileHeader, java.util.Map<SectionHeader,Address> sectionToAddress, Program program, TaskMonitor monitor)
-
hasComment
protected boolean hasComment(int type, Address address)
-
setComment
protected void setComment(int type, Address address, java.lang.String comment)
-
-