uae-dap
Version:
Debug Adapter Protocol for Amiga development with FS-UAE or WinUAE
97 lines (96 loc) • 2.92 kB
TypeScript
/// <reference types="node" />
import { Socket } from "net";
export interface HaltEvent {
signal: HaltSignal;
label: string;
threadId?: number;
}
export declare enum HaltSignal {
INT = 2,
ILL = 4,
TRAP = 5,
EMT = 7,
FPE = 8,
BUS = 10,
SEGV = 11
}
export declare enum BreakpointCode {
SOFTWARE = 0,
HARDWARE = 1,
WRITE = 2,
READ = 3,
ACCESS = 4
}
declare type Events = {
stop: (e: HaltEvent) => void;
end: () => void;
output: (message: string) => void;
};
export declare const DEFAULT_FRAME_INDEX = -1;
export declare class GdbClient {
private socket;
private requestMutex;
private frameMutex;
private eventEmitter;
private responseCallback?;
private haltStatus;
constructor(socket?: Socket);
connect(host: string, port: number): Promise<void>;
destroy(): void;
getOffsets(): Promise<number[]>;
setBreakpoint(address: number, type?: BreakpointCode, size?: number): Promise<void>;
setExceptionBreakpoint(exceptionMask: number): Promise<void>;
removeBreakpoint(address: number, type?: BreakpointCode, size?: number): Promise<void>;
pause(threadId: number): Promise<void>;
continueExecution(threadId: number): Promise<void>;
stepIn(threadId: number): Promise<void>;
stepToRange(threadId: number, startAddress: number, endAddress: number): Promise<void>;
getHaltStatus(): Promise<HaltEvent | null>;
readMemory(address: number, length: number): Promise<string>;
writeMemory(address: number, dataToSend: string): Promise<void>;
getRegisters(threadId?: number | null): Promise<number[]>;
getRegister(regIdx: number): Promise<number>;
setRegister(regIdx: number, value: number): Promise<void>;
getFramesCount(): Promise<number>;
selectFrame(frameIndex: number): Promise<number>;
withFrame<T>(requestedFrame: number | undefined, cb: (returnedFrame: number) => Promise<T>): Promise<T>;
monitor(command: string): Promise<string>;
on<U extends keyof Events>(event: U, listener: Events[U]): this;
once<U extends keyof Events>(event: U, listener: Events[U]): this;
off<U extends keyof Events>(event: U, listener: Events[U]): this;
private sendEvent;
private request;
private requestNoRes;
private handleData;
private parseHaltStatus;
}
declare const errorMessages: {
E01: string;
E02: string;
E03: string;
E04: string;
E05: string;
E06: string;
E07: string;
E08: string;
E09: string;
E0F: string;
E10: string;
E11: string;
E12: string;
E20: string;
E21: string;
E22: string;
E25: string;
E26: string;
E30: string;
E31: string;
E40: string;
E41: string;
};
declare type ErrorType = keyof typeof errorMessages;
export declare class GdbError extends Error {
errorType: ErrorType;
constructor(errorType: string);
}
export {};