Skip to content

Commit a7fd6a7

Browse files
authored
Merge pull request #128 from Marus/master
Bug fixes from Cortex-Debug extension
2 parents 248bb84 + d827275 commit a7fd6a7

File tree

5 files changed

+19
-3
lines changed

5 files changed

+19
-3
lines changed

src/backend/gdb_expansion.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const referenceStringRegex = /^(0x[0-9a-fA-F]+\s*)"/;
77
const referenceRegex = /^0x[0-9a-fA-F]+/;
88
const nullpointerRegex = /^0x0+\b/;
99
const charRegex = /^(\d+) ['"]/;
10-
const numberRegex = /^\d+/;
10+
const numberRegex = /^\d+(\.\d+)?/;
1111
const pointerCombineChar = ".";
1212

1313
export function isExpandable(value: string): number {

src/backend/mi_parse.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ export function parseMI(output: string): MINode {
213213
let values = [];
214214
values.push(value);
215215
let remaining = output;
216-
while (value = parseCommaValue())
216+
while ((value = parseCommaValue()) !== undefined)
217217
values.push(value);
218218
output = output.substr(1); // ]
219219
return values;

src/mibase.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ export class MI2DebugSession extends DebugSession {
342342
const changelist = changes.result("changelist");
343343
changelist.forEach((change) => {
344344
const name = MINode.valueOf(change, "name");
345-
const vId = this.variableHandlesReverse[varObjName];
345+
const vId = this.variableHandlesReverse[name];
346346
const v = this.variableHandles.get(vId) as any;
347347
v.applyChanges(change);
348348
});

test/gdb_expansion.test.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,4 +292,15 @@ suite("GDB Value Expansion", () => {
292292
}
293293
]);
294294
});
295+
test("float values", () => {
296+
let node = `{ intval1 = 123, floatval1 = 123.456, intval2 = 3, floatval2 = 234.45 }`;
297+
let variables = expandValue(variableCreate, node);
298+
299+
assert.deepEqual(variables, [
300+
{ name: "intval1", value: "123", variablesReference: 0 },
301+
{ name: "floatval1", value: "123.456", variablesReference: 0 },
302+
{ name: "intval2", value: "3", variablesReference: 0 },
303+
{ name: "floatval2", value: "234.45", variablesReference: 0 }
304+
]);
305+
});
295306
});

test/mi_parse.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,4 +173,9 @@ suite("MI Parse", () => {
173173
assert.equal(MINode.valueOf(obj[1], "@frame.fullname"), undefined);
174174
assert.equal(MINode.valueOf(obj[1], "@frame.line"), undefined);
175175
});
176+
test("empty string values", () => {
177+
let parsed = parseMI(`15^done,register-names=["r0","pc","","xpsr","","control"]`);
178+
let result = parsed.result('register-names');
179+
assert.deepEqual(result, ["r0", "pc", "", "xpsr", "", "control"]);
180+
});
176181
});

0 commit comments

Comments
 (0)