Package ghidra.app.util.opinion
Class DbgLoader
- All Implemented Interfaces:
Loader
,ExtensionPoint
,Comparable<Loader>
An opinion service for processing Microsoft DBG files.
-
Nested Class Summary
Nested classes/interfaces inherited from class ghidra.app.util.opinion.AbstractProgramLoader
AbstractProgramLoader.LoadedProgram
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
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).Fields inherited from class ghidra.app.util.opinion.AbstractOrdinalSupportLoader
ORDINAL_LOOKUP_OPTION_NAME
Fields inherited from class ghidra.app.util.opinion.AbstractLibrarySupportLoader
DEPTH_OPTION_NAME, LIBRARY_DEST_FOLDER_OPTION_NAME, LINK_EXISTING_OPTION_NAME, LINK_SEARCH_FOLDER_OPTION_NAME, LOCAL_LIBRARY_OPTION_NAME, SYSTEM_LIBRARY_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 -
Method Summary
Modifier and TypeMethodDescriptionfindSupportedLoadSpecs
(ByteProvider provider) If thisLoader
supports loading the givenByteProvider
, this methods returns aCollection
of all supportedLoadSpec
s that contain discovered load specification information that thisLoader
will need to load.getName()
protected boolean
hasComment
(int type, Address address) void
load
(ByteProvider provider, LoadSpec loadSpec, List<Option> options, Program prog, TaskMonitor monitor, MessageLog log) Loads bytes in a particular format into the givenProgram
.protected void
processComments
(Listing listing, TaskMonitor monitor) protected void
processDebug
(DebugDirectoryParser parser, NTHeader ntHeader, Map<SectionHeader, Address> sectionToAddress, Program program, TaskMonitor monitor) protected boolean
processDebugCoffSymbol
(DebugCOFFSymbol symbol, NTHeader ntHeader, Map<SectionHeader, Address> sectionToAddress, Program program, TaskMonitor monitor) protected void
setComment
(int type, Address address, String comment) boolean
Methods inherited from class ghidra.app.util.opinion.AbstractOrdinalSupportLoader
getDefaultOptions, postLoadProgramFixups, processLibrary, shouldLoadLibrary, shouldSearchAllPaths, validateOptions
Methods inherited from class ghidra.app.util.opinion.AbstractLibrarySupportLoader
createLibraryByteProvider, getLibraryDestinationFolder, getLibraryLoadDepth, getLinkSearchFolder, getTier, getTierPriority, isCaseInsensitiveLibraryFilenames, isLinkExistingLibraries, isLoadLocalLibraries, isLoadSystemLibraries, isOptionalLibraryFilenameExtensions, loadProgram, loadProgramInto, matchSupportedLoadSpec
Methods inherited from class ghidra.app.util.opinion.AbstractProgramLoader
createDefaultMemoryBlocks, createProgram, generateBlockName, getLanguageService, isOverrideMainProgramName, load, loadInto, markAsFunction, release, setProgramProperties, 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 Details
-
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:
-
-
Constructor Details
-
DbgLoader
public DbgLoader()
-
-
Method Details
-
findSupportedLoadSpecs
Description copied from interface:Loader
If thisLoader
supports loading the givenByteProvider
, this methods returns aCollection
of all supportedLoadSpec
s that contain discovered load specification information that thisLoader
will need to load. If thisLoader
cannot support loading the givenByteProvider
, an emptyCollection
is returned.- Parameters:
provider
- The bytes being loaded.- Returns:
- A
Collection
ofLoadSpec
s that thisLoader
supports loading, or an emptyCollection
if thisLoader
doesn't support loading the givenByteProvider
. - Throws:
IOException
- if there was an IO-related issue finding theLoadSpec
s.
-
load
public void load(ByteProvider provider, LoadSpec loadSpec, List<Option> options, Program prog, TaskMonitor monitor, MessageLog log) throws IOException Description copied from class:AbstractLibrarySupportLoader
Loads bytes in a particular format into the givenProgram
.- Specified by:
load
in classAbstractLibrarySupportLoader
- Parameters:
provider
- The bytes to load.loadSpec
- TheLoadSpec
to use during load.options
- The load options.prog
- TheProgram
to load into.monitor
- A cancelable task monitor.log
- The message log.- Throws:
IOException
- if there was an IO-related problem loading.
-
getName
Description copied from interface:Loader
Gets theLoader
's name, which is used both for display purposes, and to identify theLoader
in the opinion files.- Returns:
- The
Loader
's name.
-
supportsLoadIntoProgram
public boolean supportsLoadIntoProgram()Description copied from interface:Loader
-
processComments
-
processDebug
protected void processDebug(DebugDirectoryParser parser, NTHeader ntHeader, Map<SectionHeader, Address> sectionToAddress, Program program, TaskMonitor monitor) -
processDebugCoffSymbol
protected boolean processDebugCoffSymbol(DebugCOFFSymbol symbol, NTHeader ntHeader, Map<SectionHeader, Address> sectionToAddress, Program program, TaskMonitor monitor) -
hasComment
-
setComment
-