public abstract class AbstractARMDebugger extends Object implements Debugger
| Modifier and Type | Class and Description |
|---|---|
protected static class |
AbstractARMDebugger.StringType |
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
callbackRunning |
protected Emulator<?> |
emulator |
protected McpServer |
mcpServer |
protected boolean |
scannerNeedsRefresh |
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractARMDebugger(Emulator<?> emulator) |
| Modifier and Type | Method and Description |
|---|---|
BreakPoint |
addBreakPoint(long address) |
BreakPoint |
addBreakPoint(long address,
BreakPointCallback callback) |
BreakPoint |
addBreakPoint(Module module,
long offset) |
BreakPoint |
addBreakPoint(Module module,
long offset,
BreakPointCallback callback) |
BreakPoint |
addBreakPoint(Module module,
String symbol) |
BreakPoint |
addBreakPoint(Module module,
String symbol,
BreakPointCallback callback) |
void |
addMcpTool(String name,
String description,
String... paramNames) |
void |
brk(UnidbgPointer pc,
int svcNumber) |
void |
close() |
protected abstract keystone.Keystone |
createKeystone(boolean isThumb) |
void |
debug(String reason) |
void |
detach() |
void |
disassembleBlock(Emulator<?> emulator,
long address,
boolean thumb) |
protected void |
dumpClass(String className) |
protected void |
dumpGPBProtobufMsg(String className) |
static Module |
findModuleByAddress(Emulator<?> emulator,
long address) |
Map<Long,BreakPoint> |
getBreakPoints() |
boolean |
hasRunnable() |
void |
hook(Backend backend,
long address,
int size,
Object user) |
void |
hookBlock(Backend backend,
long address,
int size,
Object user) |
boolean |
isDebugging() |
protected abstract void |
loop(Emulator<?> emulator,
long address,
int size,
DebugRunnable<?> runnable) |
void |
notifyExecutionStarted(long address) |
void |
onAttach(UnHook unHook) |
void |
onBreak(Backend backend,
long address,
int size,
Object user) |
boolean |
removeBreakPoint(long address) |
protected abstract int |
resolveRegister(String command,
String[] nameOut) |
protected abstract int |
resolveWriteRegister(String command) |
<T> T |
run(DebugRunnable<T> runnable) |
protected void |
searchClass(String keywords) |
void |
setDebugListener(DebugListener listener) |
protected void |
setSingleStep(int singleStep) |
protected abstract void |
showWriteHelp() |
protected abstract void |
showWriteRegs(int reg) |
void |
traceFunctionCall(FunctionCallListener listener) |
void |
traceFunctionCall(Module module,
FunctionCallListener listener)
use with unicorn
|
protected final Emulator<?> emulator
protected McpServer mcpServer
protected volatile boolean scannerNeedsRefresh
protected boolean callbackRunning
protected AbstractARMDebugger(Emulator<?> emulator)
public Map<Long,BreakPoint> getBreakPoints()
getBreakPoints in interface Debuggerpublic void onAttach(UnHook unHook)
onAttach in interface Detachablepublic void detach()
detach in interface Detachablepublic final BreakPoint addBreakPoint(Module module, String symbol)
addBreakPoint in interface Debuggerpublic final BreakPoint addBreakPoint(Module module, String symbol, BreakPointCallback callback)
addBreakPoint in interface Debuggerpublic final BreakPoint addBreakPoint(Module module, long offset)
addBreakPoint in interface Debuggerpublic final BreakPoint addBreakPoint(Module module, long offset, BreakPointCallback callback)
addBreakPoint in interface Debuggerpublic BreakPoint addBreakPoint(long address)
addBreakPoint in interface Debuggeraddress - 奇数地址表示thumb断点public BreakPoint addBreakPoint(long address, BreakPointCallback callback)
addBreakPoint in interface Debuggerpublic void traceFunctionCall(FunctionCallListener listener)
traceFunctionCall in interface Debuggerpublic void traceFunctionCall(Module module, FunctionCallListener listener)
DebuggertraceFunctionCall in interface Debuggermodule - null means all modules.protected abstract keystone.Keystone createKeystone(boolean isThumb)
protected abstract int resolveWriteRegister(String command)
protected abstract void showWriteRegs(int reg)
protected abstract void showWriteHelp()
public final boolean removeBreakPoint(long address)
removeBreakPoint in interface Debuggerpublic void setDebugListener(DebugListener listener)
setDebugListener in interface Debuggerpublic boolean isDebugging()
isDebugging in interface Debuggerprotected final void setSingleStep(int singleStep)
protected abstract void loop(Emulator<?> emulator, long address, int size, DebugRunnable<?> runnable) throws Exception
Exceptionpublic boolean hasRunnable()
hasRunnable in interface Debuggerpublic <T> T run(DebugRunnable<T> runnable) throws Exception
protected void dumpGPBProtobufMsg(String className)
protected void searchClass(String keywords)
protected void dumpClass(String className)
public final void disassembleBlock(Emulator<?> emulator, long address, boolean thumb)
disassembleBlock in interface Debuggerpublic final void brk(UnidbgPointer pc, int svcNumber)
public void addMcpTool(String name, String description, String... paramNames)
addMcpTool in interface Debuggerpublic void notifyExecutionStarted(long address)
Copyright © 2026. All rights reserved.