Added variable types for the future (fix #66)
This commit is contained in:
parent
d704af2501
commit
2308f9f166
3 changed files with 34 additions and 21 deletions
|
|
@ -14,6 +14,12 @@ export interface Stack {
|
|||
line: number;
|
||||
}
|
||||
|
||||
export interface Variable {
|
||||
name: string;
|
||||
valueStr: string;
|
||||
type: string;
|
||||
}
|
||||
|
||||
export interface SSHArguments {
|
||||
forwardX11: boolean;
|
||||
host: string;
|
||||
|
|
@ -46,7 +52,7 @@ export interface IBackend {
|
|||
removeBreakPoint(breakpoint: Breakpoint): Thenable<boolean>;
|
||||
clearBreakPoints(): Thenable<any>;
|
||||
getStack(maxLevels: number): Thenable<Stack[]>;
|
||||
getStackVariables(thread: number, frame: number): Thenable<[string, string][]>;
|
||||
getStackVariables(thread: number, frame: number): Thenable<Variable[]>;
|
||||
evalExpression(name: string): Thenable<any>;
|
||||
isReady(): boolean;
|
||||
changeVariable(name: string, rawValue: string): Thenable<any>;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Breakpoint, IBackend, Stack, SSHArguments } from "../backend.ts"
|
||||
import { Breakpoint, IBackend, Stack, SSHArguments, Variable } from "../backend.ts"
|
||||
import * as ChildProcess from "child_process"
|
||||
import { EventEmitter } from "events"
|
||||
import { parseMI, MINode } from '../mi_parse';
|
||||
|
|
@ -536,15 +536,20 @@ export class MI2 extends EventEmitter implements IBackend {
|
|||
});
|
||||
}
|
||||
|
||||
getStackVariables(thread: number, frame: number): Thenable<[string, string][]> {
|
||||
getStackVariables(thread: number, frame: number): Thenable<Variable[]> {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.sendCommand("stack-list-variables --thread " + thread + " --frame " + frame + " --simple-values").then((result) => {
|
||||
let variables = result.result("variables");
|
||||
let ret: [string, string][] = [];
|
||||
let ret: Variable[] = [];
|
||||
variables.forEach(element => {
|
||||
const key = MINode.valueOf(element, "name");
|
||||
const value = MINode.valueOf(element, "value");
|
||||
ret.push([key, value]);
|
||||
const type = MINode.valueOf(element, "type");
|
||||
ret.push({
|
||||
name: key,
|
||||
valueStr: value,
|
||||
type: type
|
||||
});
|
||||
});
|
||||
resolve(ret);
|
||||
}, reject);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue