Package ghidra.app.cmd.disassemble
Class DisassembleCommand
- Direct Known Subclasses:
ArmDisassembleCommand
,Hcs12DisassembleCommand
,MipsDisassembleCommand
,PowerPCDisassembleCommand
,X86_64DisassembleCommand
Command object for performing disassembly
-
Field Summary
Modifier and TypeFieldDescriptionprotected boolean
protected String
protected boolean
protected AddressSetView
protected boolean
protected boolean
-
Constructor Summary
ModifierConstructorDescriptionDisassembleCommand
(Address start, AddressSetView restrictedSet, boolean followFlow) Constructor for DisassembleCommand.DisassembleCommand
(AddressSetView startSet, AddressSetView restrictedSet) Constructor for DisassembleCommand.DisassembleCommand
(AddressSetView startSet, AddressSetView restrictedSet, boolean followFlow) Constructor for DisassembleCommand.protected
DisassembleCommand
(String name, AddressSetView startSet, AddressSetView restrictedSet, boolean followFlow) -
Method Summary
Modifier and TypeMethodDescriptionboolean
applyTo
(Program program, TaskMonitor monitor) Method called when this command is to apply changes to the given domain object.protected boolean
doDisassembly
(TaskMonitor monitor, Program program, int instructionAlignment) protected AddressSet
doDisassemblySeeds
(Disassembler disassembler, AddressSet seedSet, ghidra.app.plugin.core.analysis.AutoAnalysisManager mgr) Do disassembly of a seedSet of address locationsvoid
enableCodeAnalysis
(boolean enable) Set code analysis enablement.Returns an address set of all instructions that were disassembled.Returns the status message indicating the status of the command.void
setInitialContext
(RegisterValue initialContextValue) Allows a specified initial context to be used at all start points.void
setSeedContext
(DisassemblerContextImpl seedContext) Allows the disassembler context to be seeded for the various disassembly start points which may be encountered using the future flow state of the specified seedContext.Methods inherited from class ghidra.framework.cmd.BackgroundCommand
applyTo, canCancel, dispose, getName, hasProgress, isModal, run, setStatusMsg, taskCompleted, toString
-
Field Details
-
startSet
-
useDefaultRepeatPatternBehavior
protected boolean useDefaultRepeatPatternBehavior -
disassemblyPerformed
protected boolean disassemblyPerformed -
languageError
-
unalignedStart
protected boolean unalignedStart -
nonExecutableStart
protected boolean nonExecutableStart
-
-
Constructor Details
-
DisassembleCommand
Constructor for DisassembleCommand.- Parameters:
start
- Address to start disassembly.restrictedSet
- addresses that can be disassembled. a null set implies no restrictionsfollowFlow
- true means the disassembly should follow flow
-
DisassembleCommand
Constructor for DisassembleCommand.- Parameters:
startSet
- set of addresses to be the start of a disassembly. The Command object will attempt to start a disassembly at each address in this set.restrictedSet
- addresses that can be disassembled. a null set implies no restrictions
-
DisassembleCommand
public DisassembleCommand(AddressSetView startSet, AddressSetView restrictedSet, boolean followFlow) Constructor for DisassembleCommand.- Parameters:
startSet
- set of addresses to be the start of a disassembly. The Command object will attempt to start a disassembly at each address in this set.restrictedSet
- addresses that can be disassembled. a null set implies no restrictionsfollowFlow
- follow all flows within restricted set if true, otherwise limit to using startSet for flows.
-
DisassembleCommand
protected DisassembleCommand(String name, AddressSetView startSet, AddressSetView restrictedSet, boolean followFlow)
-
-
Method Details
-
setSeedContext
Allows the disassembler context to be seeded for the various disassembly start points which may be encountered using the future flow state of the specified seedContext. Any initial context set via thesetInitialContext(RegisterValue)
method will take precedence when combined with any seed values. The seedContext should remain unchanged while disassembler command is actively running.- Parameters:
seedContext
- seed context or null
-
setInitialContext
Allows a specified initial context to be used at all start points. This value will take precedence when combined with any individual seed context values specified by thesetSeedContext(DisassemblerContextImpl)
method. The defaultSeedContext should remain unchanged while disassembler command is actively running.- Parameters:
initialContextValue
- the initial context value to set or null to clear it
-
enableCodeAnalysis
public void enableCodeAnalysis(boolean enable) Set code analysis enablement. By default new instructions will be submitted for auto-analysis.- Parameters:
enable
- true if incremental code analysis should be done, else false to prevent this.
-
getStatusMsg
Description copied from interface:Command
Returns the status message indicating the status of the command.- Specified by:
getStatusMsg
in interfaceCommand<Program>
- Overrides:
getStatusMsg
in classBackgroundCommand<Program>
- Returns:
- reason for failure, or null if the status of the command was successful
-
applyTo
Description copied from class:BackgroundCommand
Method called when this command is to apply changes to the given domain object. A monitor is provided to display status information about the command as it executes in the background.- Specified by:
applyTo
in classBackgroundCommand<Program>
- Parameters:
program
- domain object that will be affected by the commandmonitor
- monitor to show progress of the command- Returns:
- true if the command applied successfully
-
doDisassembly
-
doDisassemblySeeds
protected AddressSet doDisassemblySeeds(Disassembler disassembler, AddressSet seedSet, ghidra.app.plugin.core.analysis.AutoAnalysisManager mgr) Do disassembly of a seedSet of address locations- Parameters:
disassembler
- disassembler to useseedSet
- set of addresses to be disassembledmgr
- auto analysis manager- Returns:
- addresses actually disassembled
-
getDisassembledAddressSet
Returns an address set of all instructions that were disassembled.- Returns:
- an address set of all instructions that were disassembled
-