probe-web / @probe-web/client / testing / FakeDebugger
Class: FakeDebugger
Defined in: testing/fake-debugger.ts:39
A scripted stand-in for index!Debugger with the same methods and events, so it can be passed wherever a debugger is expected. It models a tiny program — main → step_a → step_b with locals, statics and registers — and run/pause/step transitions and breakpoints, starting halted at a breakpoint. Every mutating call is recorded in FakeDebugger.calls.
Extends
EventTarget
Constructors
Constructor
new FakeDebugger(): FakeDebugger;Defined in: testing/fake-debugger.ts:61
A fake core halted at a breakpoint in step_b.
Returns
FakeDebugger
Overrides
EventTarget.constructorProperties
| Property | Modifier | Type | Default value | Description | Defined in |
|---|---|---|---|---|---|
state | public | RunState | 'halted' | As index!Debugger.state; starts halted. | testing/fake-debugger.ts:41 |
lastStop | public | StoppedDetail | null | undefined | As index!Debugger.lastStop. | testing/fake-debugger.ts:43 |
epoch | public | number | 0 | As index!Debugger.epoch; bumped whenever the fake core moves. | testing/fake-debugger.ts:45 |
calls | readonly | string[] | [] | Every mutating call, in order, e.g. continue, step over, writeRegister R0=2a. | testing/fake-debugger.ts:47 |
n | public | number | 2 | The program's n local (in main), which FakeDebugger.hit increments. | testing/fake-debugger.ts:49 |
counter | public | number | 1 | The program's COUNTER static, which FakeDebugger.hit increments. | testing/fake-debugger.ts:51 |
line | public | number | 40 | The source line the innermost frame is on. | testing/fake-debugger.ts:53 |
registers | public | Map<number, bigint> | undefined | Register values by register id. | testing/fake-debugger.ts:55 |
svdLoaded | public | boolean | false | Whether FakeDebugger.loadSvd was called, which adds a Peripherals scope. | testing/fake-debugger.ts:152 |
Methods
start()
start(): void;Defined in: testing/fake-debugger.ts:94
As index!Debugger.start; does nothing (events fire synchronously).
Returns
void
dispose()
dispose(): void;Defined in: testing/fake-debugger.ts:96
As index!Debugger.dispose; does nothing.
Returns
void
refresh()
refresh(): Promise<RunState>;Defined in: testing/fake-debugger.ts:98
Returns
Promise<RunState>
continue()
continue(): Promise<void>;Defined in: testing/fake-debugger.ts:100
As index!Debugger.continue: the fake core runs until FakeDebugger.hit.
Returns
Promise<void>
pause()
pause(): Promise<StoppedDetail>;Defined in: testing/fake-debugger.ts:102
Returns
Promise<StoppedDetail>
step()
step(mode): Promise<{
pc: bigint;
warning: null;
}>;Defined in: testing/fake-debugger.ts:104
As index!Debugger.step: every mode moves one line down.
Parameters
| Parameter | Type |
|---|---|
mode | SteppingMode |
Returns
Promise<{ pc: bigint; warning: null; }>
reset()
reset(): Promise<void>;Defined in: testing/fake-debugger.ts:115
Returns
Promise<void>
resetAndHalt()
resetAndHalt(): Promise<StoppedDetail>;Defined in: testing/fake-debugger.ts:117
As index!Debugger.resetAndHalt.
Returns
Promise<StoppedDetail>
enableVectorCatch()
enableVectorCatch(c): Promise<void>;Defined in: testing/fake-debugger.ts:119
As index!Debugger.enableVectorCatch; only recorded.
Parameters
| Parameter | Type |
|---|---|
c | WireVectorCatchCondition |
Returns
Promise<void>
hit()
hit(pc?): void;Defined in: testing/fake-debugger.ts:122
Simulate the firmware hitting a breakpoint (or any halt) while running.
Parameters
| Parameter | Type | Default value |
|---|---|---|
pc | bigint | 0x978n |
Returns
void
registerTable()
registerTable(): Promise<RegisterInfo[]>;Defined in: testing/fake-debugger.ts:130
As index!Debugger.registerTable: R0–R15, XPSR and S0 of a Cortex-M.
Returns
Promise<RegisterInfo[]>
readRegisters()
readRegisters(): Promise<RegisterValue[]>;Defined in: testing/fake-debugger.ts:132
As index!Debugger.readRegisters.
Returns
Promise<RegisterValue[]>
writeRegister()
writeRegister(register, value): Promise<void>;Defined in: testing/fake-debugger.ts:137
As index!Debugger.writeRegister, by exact name or id.
Parameters
| Parameter | Type |
|---|---|
register | string | number |
value | bigint |
Returns
Promise<void>
readMemory()
readMemory(address, count): Promise<Uint8Array<ArrayBuffer>>;Defined in: testing/fake-debugger.ts:145
As index!Debugger.readMemory: each byte is the low byte of its address.
Parameters
| Parameter | Type |
|---|---|
address | number | bigint |
count | number |
Returns
Promise<Uint8Array<ArrayBuffer>>
writeMemory()
writeMemory(address, data): Promise<void>;Defined in: testing/fake-debugger.ts:147
As index!Debugger.writeMemory; only recorded.
Parameters
| Parameter | Type |
|---|---|
address | number | bigint |
data | Uint8Array |
Returns
Promise<void>
loadDebugInfo()
loadDebugInfo(): Promise<void>;Defined in: testing/fake-debugger.ts:150
As index!Debugger.loadDebugInfo; only recorded (the fake always has debug info).
Returns
Promise<void>
loadSvd()
loadSvd(): Promise<void>;Defined in: testing/fake-debugger.ts:154
Returns
Promise<void>
clearSvd()
clearSvd(): Promise<void>;Defined in: testing/fake-debugger.ts:156
As index!Debugger.clearSvd; does nothing.
Returns
Promise<void>
stackTrace()
stackTrace(): Promise<Frame[]>;Defined in: testing/fake-debugger.ts:159
As index!Debugger.stackTrace: an inlined frame, then step_b, step_a and main.
Returns
Promise<Frame[]>
scopes()
scopes(frameId): Promise<Scope[]>;Defined in: testing/fake-debugger.ts:181
Parameters
| Parameter | Type |
|---|---|
frameId | number |
Returns
Promise<Scope[]>
variables()
variables(reference): Promise<Variable[]>;Defined in: testing/fake-debugger.ts:216
As index!Debugger.variables; references from before the last resume are rejected.
Parameters
| Parameter | Type |
|---|---|
reference | number |
Returns
Promise<Variable[]>
evaluate()
evaluate(expression): Promise<Evaluation>;Defined in: testing/fake-debugger.ts:224
As index!Debugger.evaluate: knows COUNTER and register names.
Parameters
| Parameter | Type |
|---|---|
expression | string |
Returns
Promise<Evaluation>
setVariable()
setVariable(variable, value): Promise<Evaluation>;Defined in: testing/fake-debugger.ts:233
As index!Debugger.setVariable: writing COUNTER or n changes the program state.
Parameters
| Parameter | Type |
|---|---|
variable | Pick<Variable, "name" | "parent"> |
value | string |
Returns
Promise<Evaluation>
breakpoints()
breakpoints(): Breakpoint[];Defined in: testing/fake-debugger.ts:243
As index!Debugger.breakpoints.
Returns
setSourceBreakpoints()
setSourceBreakpoints(path, specs): Promise<Breakpoint[]>;Defined in: testing/fake-debugger.ts:245
As index!Debugger.setSourceBreakpoints: line 1 has no code, so it stays unverified.
Parameters
| Parameter | Type |
|---|---|
path | string |
specs | { line: number; column?: number; }[] |
Returns
Promise<Breakpoint[]>
setInstructionBreakpoints()
setInstructionBreakpoints(addresses): Promise<Breakpoint[]>;Defined in: testing/fake-debugger.ts:258
As index!Debugger.setInstructionBreakpoints.
Parameters
| Parameter | Type |
|---|---|
addresses | (number | bigint)[] |
Returns
Promise<Breakpoint[]>
clearBreakpoints()
clearBreakpoints(): Promise<void>;Defined in: testing/fake-debugger.ts:267
As index!Debugger.clearBreakpoints.
Returns
Promise<void>
reapplyBreakpoints()
reapplyBreakpoints(): Promise<Breakpoint[]>;Defined in: testing/fake-debugger.ts:269
As index!Debugger.reapplyBreakpoints.
Returns
Promise<Breakpoint[]>
resolveSourceLocations()
resolveSourceLocations(addresses): Promise<{
path: string;
line: number;
column: number;
}[]>;Defined in: testing/fake-debugger.ts:271
As index!Debugger.resolveSourceLocations.
Parameters
| Parameter | Type |
|---|---|
addresses | (number | bigint)[] |
Returns
Promise<{ path: string; line: number; column: number; }[]>
disassemble()
disassemble(
address,
count,
instructionOffset?
): Promise<Instruction[]>;Defined in: testing/fake-debugger.ts:273
As index!Debugger.disassemble: alternating Thumb instructions, 2 bytes apart.
Parameters
| Parameter | Type | Default value |
|---|---|---|
address | number | bigint | undefined |
count | number | undefined |
instructionOffset | number | 0 |
Returns
Promise<Instruction[]>