UNPKG

uae-dap

Version:

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

118 lines (117 loc) 7.5 kB
import { LoggingDebugSession } from "@vscode/debugadapter"; import { DebugProtocol } from "@vscode/debugprotocol"; import { GdbClient, HaltEvent } from "./gdbClient"; import BreakpointManager, { DataBreakpointSizes } from "./breakpointManager"; import { NumberFormat } from "./utils/strings"; import { Emulator, EmulatorType } from "./emulator"; import VariableManager, { MemoryFormat, SourceConstantResolver } from "./variableManager"; import { VasmOptions } from "./vasm"; import { DisassemblyManager } from "./disassembly"; import StackManager from "./stackManager"; /** * Additional arguments for launch/attach request */ interface CustomArguments { /** Local path of target Amiga binary */ program: string; /** Remote path of target Amiga binary (default: SYS:{basename of program}) */ remoteProgram?: string; /** Automatically stop target after launch (default: false) */ stopOnEntry?: boolean; /** Enable verbose logging (default: false) */ trace?: boolean; /** Host name of the debug server (default: localhost) */ serverName?: string; /** Port number of the debug server (default: 2345) */ serverPort?: number; /** Exception mask (default: 0b111100) */ exceptionMask?: number; /** Options for vasm assembler, used when extracting constants from sources */ vasm?: VasmOptions; /** Display format per context */ memoryFormats?: Record<string, MemoryFormat>; } export interface LaunchRequestArguments extends DebugProtocol.LaunchRequestArguments, CustomArguments { /** Emulator program type (default: winuae for windows, fs-uae for other platforms) */ emulatorType?: EmulatorType; /** Path of emulator executable (default: use bundled version) */ emulatorBin?: string; /** Additional CLI args to pass to emulator program. Remote debugger args are added automatically */ emulatorArgs?: string[]; } export interface AttachRequestArguments extends DebugProtocol.AttachRequestArguments, CustomArguments { } export interface VariableDisplayFormatRequest { /** info of the variable */ variableInfo: { variable: DebugProtocol.Variable; }; /** Requested format */ variableDisplayFormat: NumberFormat; } export interface DisassembledFileContentsRequest { /** path of dbgasm file */ path: string; } export declare class UAEDebugSession extends LoggingDebugSession { protected gdb: GdbClient; protected emulator?: Emulator; protected trace: boolean; protected stopOnEntry: boolean; protected exceptionMask: number; protected breakpoints?: BreakpointManager; protected variables?: VariableManager; protected disassembly?: DisassemblyManager; protected stack?: StackManager; protected dataBreakpointSizes: DataBreakpointSizes; constructor(); protected initializeRequest(response: DebugProtocol.InitializeResponse): void; protected launchRequest(response: DebugProtocol.LaunchResponse, customArgs: LaunchRequestArguments): Promise<void>; protected attachRequest(response: DebugProtocol.LaunchResponse, customArgs: LaunchRequestArguments): Promise<void>; protected launchOrAttach(response: DebugProtocol.Response, customArgs: CustomArguments, startEmulator?: boolean, debug?: boolean): Promise<void>; protected configurationDoneRequest(response: DebugProtocol.ConfigurationDoneResponse): void; protected restartRequest(response: DebugProtocol.RestartResponse): void; shutdown(): void; protected setBreakPointsRequest(response: DebugProtocol.SetBreakpointsResponse, args: DebugProtocol.SetBreakpointsArguments): Promise<void>; protected setInstructionBreakpointsRequest(response: DebugProtocol.SetInstructionBreakpointsResponse, args: DebugProtocol.SetInstructionBreakpointsArguments): Promise<void>; protected dataBreakpointInfoRequest(response: DebugProtocol.DataBreakpointInfoResponse, args: DebugProtocol.DataBreakpointInfoArguments): Promise<void>; protected setDataBreakpointsRequest(response: DebugProtocol.SetDataBreakpointsResponse, args: DebugProtocol.SetDataBreakpointsArguments): Promise<void>; protected setExceptionBreakPointsRequest(response: DebugProtocol.SetExceptionBreakpointsResponse, args: DebugProtocol.SetExceptionBreakpointsArguments): Promise<void>; protected threadsRequest(response: DebugProtocol.ThreadsResponse): Promise<void>; protected stackTraceRequest(response: DebugProtocol.StackTraceResponse, { threadId }: DebugProtocol.StackTraceArguments): Promise<void>; protected scopesRequest(response: DebugProtocol.ScopesResponse, { frameId }: DebugProtocol.ScopesArguments): void; protected exceptionInfoRequest(response: DebugProtocol.ExceptionInfoResponse): Promise<void>; protected pauseRequest(response: DebugProtocol.PauseResponse, { threadId }: DebugProtocol.PauseArguments): Promise<void>; protected continueRequest(response: DebugProtocol.ContinueResponse): Promise<void>; protected nextRequest(response: DebugProtocol.NextResponse, { threadId }: DebugProtocol.NextArguments): Promise<void>; protected stepInRequest(response: DebugProtocol.StepInResponse, { threadId }: DebugProtocol.StepInArguments): Promise<void>; protected stepOutRequest(response: DebugProtocol.StepOutResponse, { threadId }: DebugProtocol.StepOutArguments): Promise<void>; protected variablesRequest(response: DebugProtocol.VariablesResponse, args: DebugProtocol.VariablesArguments): Promise<void>; protected setVariableRequest(response: DebugProtocol.SetVariableResponse, { variablesReference, name, value }: DebugProtocol.SetVariableArguments): Promise<void>; protected evaluateRequest(response: DebugProtocol.EvaluateResponse, args: DebugProtocol.EvaluateArguments): Promise<void>; protected completionsRequest(response: DebugProtocol.CompletionsResponse, args: DebugProtocol.CompletionsArguments): Promise<void>; protected readMemoryRequest(response: DebugProtocol.ReadMemoryResponse, args: DebugProtocol.ReadMemoryArguments): Promise<void>; protected writeMemoryRequest(response: DebugProtocol.WriteMemoryResponse, args: DebugProtocol.WriteMemoryArguments): Promise<void>; protected disassembleRequest(response: DebugProtocol.DisassembleResponse, args: DebugProtocol.DisassembleArguments): Promise<void>; protected sourceRequest(response: DebugProtocol.SourceResponse, args: DebugProtocol.SourceArguments): void; protected customRequest(command: string, response: DebugProtocol.Response, args: any): Promise<void>; protected handleAsyncRequest(response: DebugProtocol.Response, cb: () => Promise<void>): Promise<void>; protected sendStoppedEvent(threadId: number, reason: string, preserveFocusHint?: boolean): void; protected errorString(err: unknown): string; /** * Process a Source object before returning in to the client */ protected processSource(source?: DebugProtocol.Source): void; /** * Event handler for stop/halt event */ protected handleStop(e: HaltEvent): Promise<void>; protected getSourceConstantResolver(args: LaunchRequestArguments): SourceConstantResolver; protected onCpuFrame(_address: number): Promise<void>; protected getDataBreakpointSize(_displayValue: string, _name: string): Promise<number>; protected breakpointManager(): BreakpointManager; protected variableManager(): VariableManager; protected disassemblyManager(): DisassemblyManager; protected stackManager(): StackManager; } export {};