From d0a3537ee4553ecf1af4318c5ddb7f4994ba3f84 Mon Sep 17 00:00:00 2001 From: Haneef Mohammed Date: Fri, 28 Jan 2022 16:32:29 -0800 Subject: [PATCH] V1.3.1 --- CHANGELOG.md | 6 ++++++ package.json | 2 +- src/backend/disasm.ts | 6 +++--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8febbffa..778156f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ ChangeLog ========= +# V1.3.1 (preview release for 1.4.0) +* Improved startup code for `launch` and `attach`. Quite a bit of old unneeded code removed following VSCode's current APIs. We were doing a few things inefficiently and thew updated VSCode APIs helped. We have a few too many options for startup like `runToEntryPoint`, `breakAfterReset`, etc. along with user defined overrides/pre/post commands. These are consolidated. This will also reduce the number of updated that happen to the various windows. We tested best we could but this is yet another major change. +* Also the reset/restart processing uses virtually the same code as startup. +* More improvements in disassembly, faster and better. Tried to make it a bit more generic to handle non-ARM architectures, but 32-bit ARM remains a priority and that is the only thing available for testing. +* Issue #585, hopefully addressed. + # V1.3.0 (preview release for 1.4.0) * New Feature: Support for Logpoints. Log points allow you to print debug information to the Debug Console without stopping the program (but a breakpoint has to be used internally by gdb). [Setting Logpoints is similar to setting/editing breakpoints in the editor](https://code.visualstudio.com/blogs/2018/07/12/introducing-logpoints-and-auto-attach#_introducing-logpoints). The value of what you enter in the dialog box is similar to arguments to printf (but don't actually use the word printf and ***NO commas and arguments should be separated by a space***) ```sh diff --git a/package.json b/package.json index dd01c515..fb777456 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.3.1", "preview": false, "activationEvents": [ "onDebugResolve:cortex-debug", diff --git a/src/backend/disasm.ts b/src/backend/disasm.ts index c0cbf1fd..64b18d3d 100644 --- a/src/backend/disasm.ts +++ b/src/backend/disasm.ts @@ -658,12 +658,12 @@ export class GdbDisassembler { { return new Promise(async (resolve, reject) => { try { + await this.getMemoryRegions(); const seq = request?.seq; if (GdbDisassembler.debug) { this.handleMsg('log', `Debug-${seq}: Dequeuing...\n`); ConsoleLog('disassembleRequest: ', args); } - await this.getMemoryRegions(); const baseAddress = parseInt(args.memoryReference); const offset = args.offset || 0; @@ -675,8 +675,8 @@ export class GdbDisassembler { } const startAddr = Math.max(0, Math.min(baseAddress, baseAddress + (instrOffset * this.maxInstrSize))); const endAddr = baseAddress + (args.instructionCount + instrOffset) * this.maxInstrSize; - this.handleMsg('log', 'Start: ' + ([startAddr, baseAddress, baseAddress - startAddr].map((x) => hexFormat(x))).join(',') + '\n'); - this.handleMsg('log', 'End : ' + ([baseAddress, endAddr, endAddr - baseAddress].map((x) => hexFormat(x))).join(',') + '\n'); + // this.handleMsg('log', 'Start: ' + ([startAddr, baseAddress, baseAddress - startAddr].map((x) => hexFormat(x))).join(',') + '\n'); + // this.handleMsg('log', 'End : ' + ([baseAddress, endAddr, endAddr - baseAddress].map((x) => hexFormat(x))).join(',') + '\n'); const ranges = this.findDisasmRanges(startAddr, endAddr, baseAddress); const promises = ranges.map((r) => this.getProtocolDisassembly(r, args));