///
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;
destroy(): void;
getOffsets(): Promise;
setBreakpoint(address: number, type?: BreakpointCode, size?: number): Promise;
setExceptionBreakpoint(exceptionMask: number): Promise;
removeBreakpoint(address: number, type?: BreakpointCode, size?: number): Promise;
pause(threadId: number): Promise;
continueExecution(threadId: number): Promise;
stepIn(threadId: number): Promise;
stepToRange(threadId: number, startAddress: number, endAddress: number): Promise;
getHaltStatus(): Promise;
readMemory(address: number, length: number): Promise;
writeMemory(address: number, dataToSend: string): Promise;
getRegisters(threadId?: number | null): Promise;
getRegister(regIdx: number): Promise;
setRegister(regIdx: number, value: number): Promise;
getFramesCount(): Promise;
selectFrame(frameIndex: number): Promise;
withFrame(requestedFrame: number | undefined, cb: (returnedFrame: number) => Promise): Promise;
monitor(command: string): Promise;
on(event: U, listener: Events[U]): this;
once(event: U, listener: Events[U]): this;
off(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 {};