@twilio/plugin-microvisor
Version:
Interact with your Twilio Microvisor devices
86 lines (85 loc) • 3.35 kB
TypeScript
/// <reference types="node" />
import { ProtobufToTunnel } from './protobuf2tunnel';
import { MemoryCache } from './memorycache';
import { MemoryMap } from './memorymap';
import { EventEmitter } from 'node:events';
import { HaltReasonResponse, IHaltReasonResponse, ReadRegistersResponse, DebugProtocol, PluginTelemetryType } from '../../../../proto_gen/proto';
declare enum GdbPacketType {
ReadRegisters,
WriteRegisters,
ReadMemory,
WriteMemory,
Continue,
Step,
GeneralQueryRead,
GeneralQueryWrite,
ExtendedMode,
SetThread,
GetHaltReason,
InsertBreakpoint,
RemoveBreakpoint,
ReadRegister,
WriteRegister,
ThreadStatus,
ExtendedCommand,
KillRequest
}
declare class ThreadInfo {
fault: HaltReasonResponse.HaltReason | undefined;
name: string;
constructor(name: string);
private faultString;
toString(): string;
}
export declare class GdbPacket {
content: string;
constructor(content: string);
getType(): GdbPacketType;
getArgs(): string;
getData(): string;
static build(data: string): GdbPacket;
static escape(data: string): string;
static unescape(data: string): string;
static checksum(data: string): number;
}
export declare class GdbToProtobuf extends EventEmitter {
static readonly MEMORY_LINE_LENGTH = 128;
protobufToTunnel: ProtobufToTunnel;
debugProto: DebugProtocol;
threadInfo: ThreadInfo;
memMap: MemoryMap;
memMapXml: string;
memCache: MemoryCache;
packetHandlers: Map<GdbPacketType, ((p: GdbPacket) => Promise<GdbPacket>)>;
unsupportedPackets: Set<GdbPacketType>;
constructor(protobufToTunnel: ProtobufToTunnel);
packet(packet: GdbPacket): Promise<GdbPacket>;
interrupt(): Promise<void>;
hello(): Promise<void>;
goodbye(): Promise<void>;
telemetry(type: PluginTelemetryType, data: string): Promise<void>;
setFault(fault: HaltReasonResponse.HaltReason | undefined): void;
formatHaltReason(reason: IHaltReasonResponse): string;
formatReadRegisters(resp: ReadRegistersResponse): string;
static regToHex(reg: number): string;
static hexToReg(reg: string | undefined): number;
handleReadRegisters(_packet: GdbPacket): Promise<GdbPacket>;
handleWriteRegisters(packet: GdbPacket): Promise<GdbPacket>;
handleReadMemory(packet: GdbPacket): Promise<GdbPacket>;
handleWriteMemory(packet: GdbPacket): Promise<GdbPacket>;
handleContinue(_packet: GdbPacket): Promise<GdbPacket>;
handleStep(_packet: GdbPacket): Promise<GdbPacket>;
readWindow(packetArguments: string, file: string): string;
handleGeneralQueryRead(packet: GdbPacket): Promise<GdbPacket>;
handleGeneralQueryWrite(_packet: GdbPacket): Promise<GdbPacket>;
handleExtendedMode(_packet: GdbPacket): Promise<GdbPacket>;
handleSetThread(_packet: GdbPacket): Promise<GdbPacket>;
handleGetHaltReason(_packet: GdbPacket): Promise<GdbPacket>;
handleInsertBreakpoint(packet: GdbPacket): Promise<GdbPacket>;
handleRemoveBreakpoint(packet: GdbPacket): Promise<GdbPacket>;
handleReadRegister(packet: GdbPacket): Promise<GdbPacket>;
handleWriteRegister(packet: GdbPacket): Promise<GdbPacket>;
handleThreadStatus(_packet: GdbPacket): Promise<GdbPacket>;
handleExtendedCommand(_packet: GdbPacket): Promise<GdbPacket>;
}
export {};