Package ghidra.app.cmd.disassemble
Class DisassembleCommand
- java.lang.Object
-
- ghidra.framework.cmd.BackgroundCommand
-
- ghidra.app.cmd.disassemble.DisassembleCommand
-
- All Implemented Interfaces:
Command
- Direct Known Subclasses:
ArmDisassembleCommand,MipsDisassembleCommand,PowerPCDisassembleCommand
public class DisassembleCommand extends BackgroundCommand
Command object for performing disassembly
-
-
Field Summary
Fields Modifier and Type Field Description protected booleandisassemblyPerformedprotected booleannonExecutableStartprotected AddressSetViewstartSetprotected booleanunalignedStartprotected booleanuseDefaultRepeatPatternBehavior
-
Constructor Summary
Constructors Modifier Constructor Description DisassembleCommand(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.protectedDisassembleCommand(java.lang.String name, AddressSetView startSet, AddressSetView restrictedSet, boolean followFlow)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanapplyTo(DomainObject obj, TaskMonitor monitor)Method called when this command is to apply changes to the given domain object.protected booleandoDisassembly(TaskMonitor monitor, Program program, int instructionAlignment)voidenableCodeAnalysis(boolean enable)Set code analysis enablement.AddressSetgetDisassembledAddressSet()Returns an address set of all instructions that were disassembled.java.lang.StringgetStatusMsg()Returns the status message indicating the status of the command.voidsetInitialContext(RegisterValue initialContextValue)Allows a specified initial context to be used at all start points.voidsetSeedContext(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, setStatusMsg, taskCompleted, toString
-
-
-
-
Field Detail
-
startSet
protected AddressSetView startSet
-
useDefaultRepeatPatternBehavior
protected boolean useDefaultRepeatPatternBehavior
-
disassemblyPerformed
protected boolean disassemblyPerformed
-
unalignedStart
protected boolean unalignedStart
-
nonExecutableStart
protected boolean nonExecutableStart
-
-
Constructor Detail
-
DisassembleCommand
public DisassembleCommand(Address start, AddressSetView restrictedSet, boolean followFlow)
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
public DisassembleCommand(AddressSetView startSet, AddressSetView restrictedSet)
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 restrictions
-
DisassembleCommand
protected DisassembleCommand(java.lang.String name, AddressSetView startSet, AddressSetView restrictedSet, boolean followFlow)
-
-
Method Detail
-
setSeedContext
public 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. 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
public void setInitialContext(RegisterValue initialContextValue)
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:
contextOverrideValue- context override value or null
-
enableCodeAnalysis
public void enableCodeAnalysis(boolean enable)
Set code analysis enablement. By default new instructions will be submitted for auto-analysis.- Parameters:
enable-
-
getStatusMsg
public java.lang.String getStatusMsg()
Description copied from interface:CommandReturns the status message indicating the status of the command.- Specified by:
getStatusMsgin interfaceCommand- Overrides:
getStatusMsgin classBackgroundCommand- Returns:
- reason for failure, or null if the status of the command was successful
- See Also:
Command.getStatusMsg()
-
applyTo
public boolean applyTo(DomainObject obj, TaskMonitor monitor)
Description copied from class:BackgroundCommandMethod 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:
applyToin classBackgroundCommand- Parameters:
obj- domain object that will be affected by the commandmonitor- monitor to show progress of the command- Returns:
- true if the command applied successfully
- See Also:
BackgroundCommand.applyTo(ghidra.framework.model.DomainObject, ghidra.util.task.TaskMonitor)
-
doDisassembly
protected boolean doDisassembly(TaskMonitor monitor, Program program, int instructionAlignment)
-
getDisassembledAddressSet
public AddressSet getDisassembledAddressSet()
Returns an address set of all instructions that were disassembled.- Returns:
- an address set of all instructions that were disassembled
-
-