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; } 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; protected attachRequest(response: DebugProtocol.LaunchResponse, customArgs: LaunchRequestArguments): Promise; protected launchOrAttach(response: DebugProtocol.Response, customArgs: CustomArguments, startEmulator?: boolean, debug?: boolean): Promise; protected configurationDoneRequest(response: DebugProtocol.ConfigurationDoneResponse): void; protected restartRequest(response: DebugProtocol.RestartResponse): void; shutdown(): void; protected setBreakPointsRequest(response: DebugProtocol.SetBreakpointsResponse, args: DebugProtocol.SetBreakpointsArguments): Promise; protected setInstructionBreakpointsRequest(response: DebugProtocol.SetInstructionBreakpointsResponse, args: DebugProtocol.SetInstructionBreakpointsArguments): Promise; protected dataBreakpointInfoRequest(response: DebugProtocol.DataBreakpointInfoResponse, args: DebugProtocol.DataBreakpointInfoArguments): Promise; protected setDataBreakpointsRequest(response: DebugProtocol.SetDataBreakpointsResponse, args: DebugProtocol.SetDataBreakpointsArguments): Promise; protected setExceptionBreakPointsRequest(response: DebugProtocol.SetExceptionBreakpointsResponse, args: DebugProtocol.SetExceptionBreakpointsArguments): Promise; protected threadsRequest(response: DebugProtocol.ThreadsResponse): Promise; protected stackTraceRequest(response: DebugProtocol.StackTraceResponse, { threadId }: DebugProtocol.StackTraceArguments): Promise; protected scopesRequest(response: DebugProtocol.ScopesResponse, { frameId }: DebugProtocol.ScopesArguments): void; protected exceptionInfoRequest(response: DebugProtocol.ExceptionInfoResponse): Promise; protected pauseRequest(response: DebugProtocol.PauseResponse, { threadId }: DebugProtocol.PauseArguments): Promise; protected continueRequest(response: DebugProtocol.ContinueResponse): Promise; protected nextRequest(response: DebugProtocol.NextResponse, { threadId }: DebugProtocol.NextArguments): Promise; protected stepInRequest(response: DebugProtocol.StepInResponse, { threadId }: DebugProtocol.StepInArguments): Promise; protected stepOutRequest(response: DebugProtocol.StepOutResponse, { threadId }: DebugProtocol.StepOutArguments): Promise; protected variablesRequest(response: DebugProtocol.VariablesResponse, args: DebugProtocol.VariablesArguments): Promise; protected setVariableRequest(response: DebugProtocol.SetVariableResponse, { variablesReference, name, value }: DebugProtocol.SetVariableArguments): Promise; protected evaluateRequest(response: DebugProtocol.EvaluateResponse, args: DebugProtocol.EvaluateArguments): Promise; protected completionsRequest(response: DebugProtocol.CompletionsResponse, args: DebugProtocol.CompletionsArguments): Promise; protected readMemoryRequest(response: DebugProtocol.ReadMemoryResponse, args: DebugProtocol.ReadMemoryArguments): Promise; protected writeMemoryRequest(response: DebugProtocol.WriteMemoryResponse, args: DebugProtocol.WriteMemoryArguments): Promise; protected disassembleRequest(response: DebugProtocol.DisassembleResponse, args: DebugProtocol.DisassembleArguments): Promise; protected sourceRequest(response: DebugProtocol.SourceResponse, args: DebugProtocol.SourceArguments): void; protected customRequest(command: string, response: DebugProtocol.Response, args: any): Promise; protected handleAsyncRequest(response: DebugProtocol.Response, cb: () => Promise): Promise; 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; protected getSourceConstantResolver(args: LaunchRequestArguments): SourceConstantResolver; protected onCpuFrame(_address: number): Promise; protected getDataBreakpointSize(_displayValue: string, _name: string): Promise; protected breakpointManager(): BreakpointManager; protected variableManager(): VariableManager; protected disassemblyManager(): DisassemblyManager; protected stackManager(): StackManager; } export {};