uae-dap
Version:
Debug Adapter Protocol for Amiga development with FS-UAE or WinUAE
49 lines (48 loc) • 2.27 kB
TypeScript
import { StackFrame } from "@vscode/debugadapter";
import { DebugProtocol } from "@vscode/debugprotocol";
import { GdbClient } from "../gdbClient";
import VariableManager from "../variableManager";
import { DisassembledFile } from "./disassembledFile";
import SourceMap from "../sourceMap";
import { StackPosition } from "../stackManager";
export interface DisassembledLine {
text: string;
isCopper: boolean;
}
export declare class DisassemblyManager {
private gdb;
private variables;
private sourceMap;
private sourceHandles;
protected lineCache: Map<number, DisassembledLine>;
constructor(gdb: GdbClient, variables: VariableManager, sourceMap: SourceMap);
/**
* Disassemble memory to CPU or Copper instructions
*/
disassemble(args: DebugProtocol.DisassembleArguments & DisassembledFile): Promise<DebugProtocol.DisassembledInstruction[]>;
/**
* Get disassembled file contents by source reference
*/
getDisassembledFileContentsByRef(ref: number): Promise<string | undefined>;
/**
* Get disassembled content for a .dgasm file path
*
* The filename contains tokens for the disassemble options
*/
getDisassembledFileContentsByPath(path: string): Promise<string>;
/**
* Get text content for a disassembled source file
*/
getDisassembledFileContents(dAsmFile: DisassembledFile): Promise<string>;
disassembleLine(pc: number, threadId: number): Promise<DisassembledLine>;
isCopperLine(pc: number): boolean;
getStackFrame(stackPosition: StackPosition, threadId: number): Promise<StackFrame>;
getSourceByReference(ref: number): DisassembledFile | undefined;
disassembleSegment(segmentId: number): Promise<DebugProtocol.DisassembledInstruction[]>;
disassembleAddressExpression(addressExpression: string, length: number, offset: number | undefined, isCopper: boolean): Promise<DebugProtocol.DisassembledInstruction[]>;
disassembleAddress(address: number, length: number, isCopper?: boolean): Promise<DebugProtocol.DisassembledInstruction[]>;
getAddressForFileEditorLine(filePath: string, lineNumber: number): Promise<number>;
private getLineNumberInDisassembledSegment;
private evaluateAddress;
private getCopperAddress;
}