UNPKG

uae-dap

Version:

Debug Adapter Protocol for Amiga development with FS-UAE or WinUAE

59 lines (58 loc) 2.4 kB
import { DebugProtocol } from "@vscode/debugprotocol"; import { GdbClient } from "./gdbClient"; import SourceMap from "./sourceMap"; import { DisassemblyManager } from "./disassembly"; export interface BreakpointReference<T = DebugProtocol.SourceBreakpoint | DebugProtocol.DataBreakpoint> { address: number; breakpoint: T; hitCount: number; size?: number; } /** * Interface for sizes map, which can be implemented with persistence for VS Code */ export interface DataBreakpointSizes { get(id: string): number | undefined; set(id: string, size: number): void; delete(id: string): void; clear(): void; } /** * Breakpoint manager * * Handles adding and removing breakpoints to program */ declare class BreakpointManager { private gdb; private sourceMap; private disassembly; private sizes; /** Source breakpoints mapped by source and line number */ private sourceBreakpoints; /** Source breakpoints mapped by address */ private sourceBreakpointsByAddress; /** Data breakpoints mapped by address */ private dataBreakpoints; /** Instruction breakoint addresses */ private instructionBreakpoints; /** Temporary breakoint address groups */ private temporaryBreakpoints; private nextId; constructor(gdb: GdbClient, sourceMap: SourceMap, disassembly: DisassemblyManager, sizes: DataBreakpointSizes); setSourceBreakpoints(source: DebugProtocol.Source, breakpoints: DebugProtocol.SourceBreakpoint[]): Promise<DebugProtocol.Breakpoint[]>; sourceBreakpointAtAddress(address: number): BreakpointReference<DebugProtocol.SourceBreakpoint> | undefined; setDataBreakpoints(breakpoints: DebugProtocol.DataBreakpoint[]): Promise<DebugProtocol.Breakpoint[]>; parseDataId(dataId: string): { name: string; displayValue: string; address: number; }; dataBreakpointAtAddress(address: number): BreakpointReference<DebugProtocol.DataBreakpoint> | undefined; setInstructionBreakpoints(breakpoints: DebugProtocol.InstructionBreakpoint[]): Promise<DebugProtocol.Breakpoint[]>; instructionBreakpointAtAddress(address: number): boolean; addTemporaryBreakpoints(pc: number): Promise<void>; hasTemporaryBreakpoints(): boolean; temporaryBreakpointAtAddress(pc: number): boolean; clearTemporaryBreakpoints(): Promise<void>; } export default BreakpointManager;