From 7a701cee98843504b40341a330460d6149f7ac46 Mon Sep 17 00:00:00 2001 From: Valerio Lupi Date: Sun, 22 Jul 2018 22:40:26 +0200 Subject: [PATCH 01/15] while debugging, primitive types (i.e. int, uint, ...) are displayed as hex together with the decimal value (i.e. 10 is displayed as 0x0a (10)) --- src/debugAdapter/goDebug.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/debugAdapter/goDebug.ts b/src/debugAdapter/goDebug.ts index a94248d5c..827229292 100644 --- a/src/debugAdapter/goDebug.ts +++ b/src/debugAdapter/goDebug.ts @@ -216,6 +216,11 @@ process.on('uncaughtException', (err: any) => { throw err; }); +function convertToHex(v) { + let s = '0x' + parseInt(v).toString(16) + ' (' + v + ')'; + return s; +} + function logArgsToString(args: any[]): string { return args.map(arg => { return typeof arg === 'string' ? @@ -835,7 +840,7 @@ class GoDebugSession extends DebugSession { }; } else { return { - result: v.value || ('<' + v.type + '>'), + result: convertToHex(v.value) || ('<' + v.type + '>'), variablesReference: v.children.length > 0 ? this._variableHandles.create(v) : 0 }; } From 6d293248a9b605da623409a01e500d38ac500c6c Mon Sep 17 00:00:00 2001 From: Valerio Lupi Date: Sun, 22 Jul 2018 22:56:25 +0200 Subject: [PATCH 02/15] fixed indentation --- src/debugAdapter/goDebug.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/debugAdapter/goDebug.ts b/src/debugAdapter/goDebug.ts index 827229292..38c4b0500 100644 --- a/src/debugAdapter/goDebug.ts +++ b/src/debugAdapter/goDebug.ts @@ -217,8 +217,8 @@ process.on('uncaughtException', (err: any) => { }); function convertToHex(v) { - let s = '0x' + parseInt(v).toString(16) + ' (' + v + ')'; - return s; + let s = '0x' + parseInt(v).toString(16) + ' (' + v + ')'; + return s; } function logArgsToString(args: any[]): string { From d2579a56bd24a666978ee084383c108509d54d4d Mon Sep 17 00:00:00 2001 From: Ramya Achutha Rao Date: Mon, 23 Jul 2018 10:24:50 -0700 Subject: [PATCH 03/15] Show err ms when package not found --- src/goImport.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/goImport.ts b/src/goImport.ts index 842537542..3f062745b 100644 --- a/src/goImport.ts +++ b/src/goImport.ts @@ -140,12 +140,9 @@ export function addImportToWorkspace() { const env = getToolsEnvVars(); cp.execFile(goRuntimePath, ['list', '-f', '{{.Dir}}', importPath], { env }, (err, stdout, stderr) => { - if (!stdout) { - return; - } - - let dirs = stdout.split('\n'); + let dirs = (stdout || '').split('\n'); if (dirs.length === 0) { + vscode.window.showErrorMessage(`Could not find ${importPath}`); return; } From 2725d1c48ef90f614f594fc9088cb918509fe18e Mon Sep 17 00:00:00 2001 From: Valerio Lupi Date: Mon, 23 Jul 2018 20:13:03 +0200 Subject: [PATCH 04/15] introduced launch.json option, no more hardcoding in launch.json: ... "env": { // controls numbers display while debugging // "hex" (shows hex only) "hexdec" ( shows hex (dec) ) // default: shows dec only "DBG_SHOW_NUMBERS_HEX": "hexdec" }, ... --- src/debugAdapter/goDebug.ts | 1840 ++++++++++++++++------------------- 1 file changed, 824 insertions(+), 1016 deletions(-) diff --git a/src/debugAdapter/goDebug.ts b/src/debugAdapter/goDebug.ts index 38c4b0500..1f809ff40 100644 --- a/src/debugAdapter/goDebug.ts +++ b/src/debugAdapter/goDebug.ts @@ -1,1033 +1,841 @@ +"use strict"; /*--------------------------------------------------------- * Copyright (C) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------*/ - -import * as path from 'path'; -import * as os from 'os'; -import { DebugProtocol } from 'vscode-debugprotocol'; -import { DebugSession, InitializedEvent, TerminatedEvent, ThreadEvent, StoppedEvent, OutputEvent, Thread, StackFrame, Scope, Source, Handles } from 'vscode-debugadapter'; -import { existsSync, lstatSync } from 'fs'; -import { basename, dirname, extname } from 'path'; -import { spawn, ChildProcess, execSync, spawnSync } from 'child_process'; -import { Client, RPCConnection } from 'json-rpc2'; -import { parseEnvFile, getBinPathWithPreferredGopath, resolveHomeDir, getInferredGopath, getCurrentGoWorkspaceFromGOPATH, envPath, fixDriveCasingInWindows } from '../goPath'; -import * as logger from 'vscode-debug-logger'; - +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const os = require("os"); +const vscode_debugadapter_1 = require("vscode-debugadapter"); +const fs_1 = require("fs"); +const path_1 = require("path"); +const child_process_1 = require("child_process"); +const json_rpc2_1 = require("json-rpc2"); +const goPath_1 = require("../goPath"); +const logger = require("vscode-debug-logger"); require('console-stamp')(console); - // This enum should stay in sync with https://golang.org/pkg/reflect/#Kind - -enum GoReflectKind { - Invalid = 0, - Bool, - Int, - Int8, - Int16, - Int32, - Int64, - Uint, - Uint8, - Uint16, - Uint32, - Uint64, - Uintptr, - Float32, - Float64, - Complex64, - Complex128, - Array, - Chan, - Func, - Interface, - Map, - Ptr, - Slice, - String, - Struct, - UnsafePointer -} - -// These types should stay in sync with: -// https://github.com/derekparker/delve/blob/master/service/api/types.go - -interface CommandOut { - State: DebuggerState; -} - -interface DebuggerState { - exited: boolean; - exitStatus: number; - breakPoint: DebugBreakpoint; - breakPointInfo: {}; - currentThread: DebugThread; - currentGoroutine: DebugGoroutine; -} - -interface ClearBreakpointOut { - breakpoint: DebugBreakpoint; -} - -interface CreateBreakpointOut { - breakpoint: DebugBreakpoint; -} - -interface GetVersionOut { - DelveVersion: string; - APIVersion: number; -} - -interface DebugBreakpoint { - addr: number; - continue: boolean; - file: string; - functionName?: string; - goroutine: boolean; - id: number; - name: string; - line: number; - stacktrace: number; - variables?: DebugVariable[]; - loadArgs?: LoadConfig; - loadLocals?: LoadConfig; - cond?: string; -} - -interface LoadConfig { - // FollowPointers requests pointers to be automatically dereferenced. - followPointers: boolean; - // MaxVariableRecurse is how far to recurse when evaluating nested types. - maxVariableRecurse: number; - // MaxStringLen is the maximum number of bytes read from a string - maxStringLen: number; - // MaxArrayValues is the maximum number of elements read from an array, a slice or a map. - maxArrayValues: number; - // MaxStructFields is the maximum number of fields read from a struct, -1 will read all fields. - maxStructFields: number; -}; - -interface DebugThread { - file: string; - id: number; - line: number; - pc: number; - function?: DebugFunction; -}; - -interface StacktraceOut { - Locations: DebugLocation[]; -} - -interface DebugLocation { - pc: number; - file: string; - line: number; - function: DebugFunction; -} - -interface DebugFunction { - name: string; - value: number; - type: number; - goType: number; - args: DebugVariable[]; - locals: DebugVariable[]; -} - -interface ListLocalVarsOut { - Variables: DebugVariable[]; -} - -interface ListFunctionArgsOut { - Args: DebugVariable[]; -} - -interface EvalOut { - Variable: DebugVariable; -} - -interface DebugVariable { - name: string; - addr: number; - type: string; - realType: string; - kind: GoReflectKind; - value: string; - len: number; - cap: number; - children: DebugVariable[]; - unreadable: string; -} - -interface ListGoroutinesOut { - Goroutines: DebugGoroutine[]; -} - -interface DebugGoroutine { - id: number; - currentLoc: DebugLocation; - userCurrentLoc: DebugLocation; - goStatementLoc: DebugLocation; -} - -interface DebuggerCommand { - name: string; - threadID?: number; - goroutineID?: number; -} - -interface RestartOut { - DiscardedBreakpoints: DiscardedBreakpoint[]; -} - -interface DiscardedBreakpoint { - breakpoint: DebugBreakpoint; - reason: string; -} - -// This interface should always match the schema found in `package.json`. -interface LaunchRequestArguments extends DebugProtocol.LaunchRequestArguments { - program: string; - stopOnEntry?: boolean; - args?: string[]; - showLog?: boolean; - cwd?: string; - env?: { [key: string]: string; }; - mode?: string; - remotePath?: string; - port?: number; - host?: string; - buildFlags?: string; - init?: string; - trace?: boolean | 'verbose'; - /** Optional path to .env file. */ - envFile?: string; - backend?: string; - output?: string; - /** Delve LoadConfig parameters **/ - dlvLoadConfig?: LoadConfig; - /** Delve Version */ - useApiV1: boolean; -} - -process.on('uncaughtException', (err: any) => { - const errMessage = err && (err.stack || err.message); - logger.error(`Unhandled error in debug adapter: ${errMessage}`); - throw err; +var GoReflectKind; +(function (GoReflectKind) { + GoReflectKind[GoReflectKind["Invalid"] = 0] = "Invalid"; + GoReflectKind[GoReflectKind["Bool"] = 1] = "Bool"; + GoReflectKind[GoReflectKind["Int"] = 2] = "Int"; + GoReflectKind[GoReflectKind["Int8"] = 3] = "Int8"; + GoReflectKind[GoReflectKind["Int16"] = 4] = "Int16"; + GoReflectKind[GoReflectKind["Int32"] = 5] = "Int32"; + GoReflectKind[GoReflectKind["Int64"] = 6] = "Int64"; + GoReflectKind[GoReflectKind["Uint"] = 7] = "Uint"; + GoReflectKind[GoReflectKind["Uint8"] = 8] = "Uint8"; + GoReflectKind[GoReflectKind["Uint16"] = 9] = "Uint16"; + GoReflectKind[GoReflectKind["Uint32"] = 10] = "Uint32"; + GoReflectKind[GoReflectKind["Uint64"] = 11] = "Uint64"; + GoReflectKind[GoReflectKind["Uintptr"] = 12] = "Uintptr"; + GoReflectKind[GoReflectKind["Float32"] = 13] = "Float32"; + GoReflectKind[GoReflectKind["Float64"] = 14] = "Float64"; + GoReflectKind[GoReflectKind["Complex64"] = 15] = "Complex64"; + GoReflectKind[GoReflectKind["Complex128"] = 16] = "Complex128"; + GoReflectKind[GoReflectKind["Array"] = 17] = "Array"; + GoReflectKind[GoReflectKind["Chan"] = 18] = "Chan"; + GoReflectKind[GoReflectKind["Func"] = 19] = "Func"; + GoReflectKind[GoReflectKind["Interface"] = 20] = "Interface"; + GoReflectKind[GoReflectKind["Map"] = 21] = "Map"; + GoReflectKind[GoReflectKind["Ptr"] = 22] = "Ptr"; + GoReflectKind[GoReflectKind["Slice"] = 23] = "Slice"; + GoReflectKind[GoReflectKind["String"] = 24] = "String"; + GoReflectKind[GoReflectKind["Struct"] = 25] = "Struct"; + GoReflectKind[GoReflectKind["UnsafePointer"] = 26] = "UnsafePointer"; +})(GoReflectKind || (GoReflectKind = {})); +; +; +process.on('uncaughtException', (err) => { + const errMessage = err && (err.stack || err.message); + logger.error(`Unhandled error in debug adapter: ${errMessage}`); + throw err; }); -function convertToHex(v) { - let s = '0x' + parseInt(v).toString(16) + ' (' + v + ')'; - return s; +function logArgsToString(args) { + return args.map(arg => { + return typeof arg === 'string' ? + arg : + JSON.stringify(arg); + }).join(' '); } - -function logArgsToString(args: any[]): string { - return args.map(arg => { - return typeof arg === 'string' ? - arg : - JSON.stringify(arg); - }).join(' '); -} - -function verbose(...args: any[]) { - logger.verbose(logArgsToString(args)); +function verbose(...args) { + logger.verbose(logArgsToString(args)); } - -function log(...args: any[]) { - logger.log(logArgsToString(args)); +function log(...args) { + logger.log(logArgsToString(args)); } - -function logError(...args: any[]) { - logger.error(logArgsToString(args)); +function logError(...args) { + logger.error(logArgsToString(args)); } - -function normalizePath(filePath: string) { - if (process.platform === 'win32') { - filePath = path.normalize(filePath); - return fixDriveCasingInWindows(filePath); - } - return filePath; +function normalizePath(filePath) { + if (process.platform === 'win32') { + filePath = path.normalize(filePath); + return goPath_1.fixDriveCasingInWindows(filePath); + } + return filePath; } - class Delve { - program: string; - remotePath: string; - debugProcess: ChildProcess; - loadConfig: LoadConfig; - connection: Promise; - onstdout: (str: string) => void; - onstderr: (str: string) => void; - onclose: (code: number) => void; - noDebug: boolean; - isApiV1: boolean; - - constructor(remotePath: string, port: number, host: string, program: string, launchArgs: LaunchRequestArguments) { - this.program = normalizePath(program); - this.remotePath = remotePath; - this.isApiV1 = typeof launchArgs.useApiV1 === 'boolean' ? launchArgs.useApiV1 : true; - let mode = launchArgs.mode; - let dlvCwd = dirname(program); - let isProgramDirectory = false; - let launchArgsEnv = launchArgs.env || {}; - this.connection = new Promise((resolve, reject) => { - // Validations on the program - if (!program) { - return reject('The program attribute is missing in the debug configuration in launch.json'); - } - try { - let pstats = lstatSync(program); - if (pstats.isDirectory()) { - if (mode === 'exec') { - logError(`The program "${program}" must not be a directory in exec mode`); - return reject('The program attribute must be an executable in exec mode'); - } - dlvCwd = program; - isProgramDirectory = true; - } else if (mode !== 'exec' && extname(program) !== '.go') { - logError(`The program "${program}" must be a valid go file in debug mode`); - return reject('The program attribute must be a directory or .go file in debug mode'); - } - } catch (e) { - logError(`The program "${program}" does not exist: ${e}`); - return reject('The program attribute must point to valid directory, .go file or executable.'); - } - - // read env from disk and merge into env variables - let fileEnv = {}; - try { - fileEnv = parseEnvFile(launchArgs.envFile); - } catch (e) { - return reject(e); - } - - let env = Object.assign({}, process.env, fileEnv, launchArgsEnv); - - let dirname = isProgramDirectory ? program : path.dirname(program); - if (!env['GOPATH'] && (mode === 'debug' || mode === 'test')) { - // If no GOPATH is set, then infer it from the file/package path - // Not applicable to exec mode in which case `program` need not point to source code under GOPATH - env['GOPATH'] = getInferredGopath(dirname) || env['GOPATH']; - } - - verbose(`Using GOPATH: ${env['GOPATH']}`); - - if (!!launchArgs.noDebug) { - if (mode === 'debug' && !isProgramDirectory) { - this.noDebug = true; - this.debugProcess = spawn(getBinPathWithPreferredGopath('go', []), ['run', program], { env }); - this.debugProcess.stderr.on('data', chunk => { - let str = chunk.toString(); - if (this.onstderr) { this.onstderr(str); } - }); - this.debugProcess.stdout.on('data', chunk => { - let str = chunk.toString(); - if (this.onstdout) { this.onstdout(str); } - }); - this.debugProcess.on('close', (code) => { - logError('Process exiting with code: ' + code); - if (this.onclose) { this.onclose(code); } - }); - this.debugProcess.on('error', function (err) { - reject(err); - }); - resolve(); - return; - } - } - this.noDebug = false; - let serverRunning = false; - - // Get default LoadConfig values according to delve API: - // https://github.com/derekparker/delve/blob/c5c41f635244a22d93771def1c31cf1e0e9a2e63/service/rpc1/server.go#L13 - // https://github.com/derekparker/delve/blob/c5c41f635244a22d93771def1c31cf1e0e9a2e63/service/rpc2/server.go#L423 - this.loadConfig = launchArgs.dlvLoadConfig || { - followPointers: true, - maxVariableRecurse: 1, - maxStringLen: 64, - maxArrayValues: 64, - maxStructFields: -1 - }; - - if (mode === 'remote') { - this.debugProcess = null; - serverRunning = true; // assume server is running when in remote mode - connectClient(port, host); - return; - } - - let dlv = getBinPathWithPreferredGopath('dlv', [resolveHomeDir(env['GOPATH']), process.env['GOPATH']]); - - if (!existsSync(dlv)) { - verbose(`Couldnt find dlv at ${process.env['GOPATH']}${env['GOPATH'] ? ', ' + env['GOPATH'] : ''} or ${envPath}`); - return reject(`Cannot find Delve debugger. Install from https://github.com/derekparker/delve & ensure it is in your "GOPATH/bin" or "PATH".`); - } - - let currentGOWorkspace = getCurrentGoWorkspaceFromGOPATH(env['GOPATH'], dirname); - let dlvArgs = [mode || 'debug']; - if (mode === 'exec') { - dlvArgs = dlvArgs.concat([program]); - } else if (currentGOWorkspace) { - dlvArgs = dlvArgs.concat([dirname.substr(currentGOWorkspace.length + 1)]); - } - dlvArgs = dlvArgs.concat(['--headless=true', '--listen=' + host + ':' + port.toString()]); - if (!this.isApiV1) { - dlvArgs.push('--api-version=2'); - } - - if (launchArgs.showLog) { - dlvArgs = dlvArgs.concat(['--log=' + launchArgs.showLog.toString()]); - } - if (launchArgs.cwd) { - dlvArgs = dlvArgs.concat(['--wd=' + launchArgs.cwd]); - } - if (launchArgs.buildFlags) { - dlvArgs = dlvArgs.concat(['--build-flags=' + launchArgs.buildFlags]); - } - if (launchArgs.init) { - dlvArgs = dlvArgs.concat(['--init=' + launchArgs.init]); - } - if (launchArgs.backend) { - dlvArgs = dlvArgs.concat(['--backend=' + launchArgs.backend]); - } - if (launchArgs.output && mode === 'debug') { - dlvArgs = dlvArgs.concat(['--output=' + launchArgs.output]); - } - if (launchArgs.args) { - dlvArgs = dlvArgs.concat(['--', ...launchArgs.args]); - } - - verbose(`Running: ${dlv} ${dlvArgs.join(' ')}`); - - this.debugProcess = spawn(dlv, dlvArgs, { - cwd: dlvCwd, - env, - }); - - function connectClient(port: number, host: string) { - // Add a slight delay to avoid issues on Linux with - // Delve failing calls made shortly after connection. - setTimeout(() => { - let client = Client.$create(port, host); - client.connectSocket((err, conn) => { - if (err) return reject(err); - return resolve(conn); - }); - }, 200); - } - - this.debugProcess.stderr.on('data', chunk => { - let str = chunk.toString(); - if (this.onstderr) { this.onstderr(str); } - }); - this.debugProcess.stdout.on('data', chunk => { - let str = chunk.toString(); - if (this.onstdout) { this.onstdout(str); } - if (!serverRunning) { - serverRunning = true; - connectClient(port, host); - } - }); - this.debugProcess.on('close', (code) => { - // TODO: Report `dlv` crash to user. - logError('Process exiting with code: ' + code); - if (this.onclose) { this.onclose(code); } - }); - this.debugProcess.on('error', function (err) { - reject(err); - }); - }); - } - - call(command: string, args: any[], callback: (err: Error, results: T) => void) { - this.connection.then(conn => { - conn.call('RPCServer.' + command, args, callback); - }, err => { - callback(err, null); - }); - } - - callPromise(command: string, args: any[]): Thenable { - return new Promise((resolve, reject) => { - this.connection.then(conn => { - conn.call('RPCServer.' + command, args, (err, res) => { - if (err) return reject(err); - resolve(res); - }); - }, err => { - reject(err); - }); - }); - } - - close(): Thenable { - return this.callPromise('Command', [{ name: 'halt' }]).then(out => { - if (!this.debugProcess) { - return this.callPromise('Restart', this.isApiV1 ? [] : [{ position: '', resetArgs: false, newArgs: [] }]).then(null, err => { - if (err) return logError('Failed to restart'); - }); - } - }, err => { - if (!this.debugProcess && err) { - return logError('Failed to halt.'); - } - }).then(() => { - if (this.debugProcess) { - return this.callPromise('Detach', [this.isApiV1 ? true : { Kill: true }]); - } - }); - } + constructor(remotePath, port, host, program, launchArgs) { + this.program = normalizePath(program); + this.remotePath = remotePath; + this.isApiV1 = typeof launchArgs.useApiV1 === 'boolean' ? launchArgs.useApiV1 : true; + let mode = launchArgs.mode; + let dlvCwd = path_1.dirname(program); + let isProgramDirectory = false; + let launchArgsEnv = launchArgs.env || {}; + this.connection = new Promise((resolve, reject) => { + // Validations on the program + if (!program) { + return reject('The program attribute is missing in the debug configuration in launch.json'); + } + try { + let pstats = fs_1.lstatSync(program); + if (pstats.isDirectory()) { + if (mode === 'exec') { + logError(`The program "${program}" must not be a directory in exec mode`); + return reject('The program attribute must be an executable in exec mode'); + } + dlvCwd = program; + isProgramDirectory = true; + } + else if (mode !== 'exec' && path_1.extname(program) !== '.go') { + logError(`The program "${program}" must be a valid go file in debug mode`); + return reject('The program attribute must be a directory or .go file in debug mode'); + } + } + catch (e) { + logError(`The program "${program}" does not exist: ${e}`); + return reject('The program attribute must point to valid directory, .go file or executable.'); + } + // read env from disk and merge into env variables + let fileEnv = {}; + try { + fileEnv = goPath_1.parseEnvFile(launchArgs.envFile); + } + catch (e) { + return reject(e); + } + let env = Object.assign({}, process.env, fileEnv, launchArgsEnv); + let dirname = isProgramDirectory ? program : path.dirname(program); + if (!env['GOPATH'] && (mode === 'debug' || mode === 'test')) { + // If no GOPATH is set, then infer it from the file/package path + // Not applicable to exec mode in which case `program` need not point to source code under GOPATH + env['GOPATH'] = goPath_1.getInferredGopath(dirname) || env['GOPATH']; + } + verbose(`Using GOPATH: ${env['GOPATH']}`); + if (!!launchArgs.noDebug) { + if (mode === 'debug' && !isProgramDirectory) { + this.noDebug = true; + this.debugProcess = child_process_1.spawn(goPath_1.getBinPathWithPreferredGopath('go', []), ['run', program], { env }); + this.debugProcess.stderr.on('data', chunk => { + let str = chunk.toString(); + if (this.onstderr) { + this.onstderr(str); + } + }); + this.debugProcess.stdout.on('data', chunk => { + let str = chunk.toString(); + if (this.onstdout) { + this.onstdout(str); + } + }); + this.debugProcess.on('close', (code) => { + logError('Process exiting with code: ' + code); + if (this.onclose) { + this.onclose(code); + } + }); + this.debugProcess.on('error', function (err) { + reject(err); + }); + resolve(); + return; + } + } + this.noDebug = false; + let serverRunning = false; + // Get default LoadConfig values according to delve API: + // https://github.com/derekparker/delve/blob/c5c41f635244a22d93771def1c31cf1e0e9a2e63/service/rpc1/server.go#L13 + // https://github.com/derekparker/delve/blob/c5c41f635244a22d93771def1c31cf1e0e9a2e63/service/rpc2/server.go#L423 + this.loadConfig = launchArgs.dlvLoadConfig || { + followPointers: true, + maxVariableRecurse: 1, + maxStringLen: 64, + maxArrayValues: 64, + maxStructFields: -1 + }; + if (mode === 'remote') { + this.debugProcess = null; + serverRunning = true; // assume server is running when in remote mode + connectClient(port, host); + return; + } + let dlv = goPath_1.getBinPathWithPreferredGopath('dlv', [goPath_1.resolveHomeDir(env['GOPATH']), process.env['GOPATH']]); + if (!fs_1.existsSync(dlv)) { + verbose(`Couldnt find dlv at ${process.env['GOPATH']}${env['GOPATH'] ? ', ' + env['GOPATH'] : ''} or ${goPath_1.envPath}`); + return reject(`Cannot find Delve debugger. Install from https://github.com/derekparker/delve & ensure it is in your "GOPATH/bin" or "PATH".`); + } + let currentGOWorkspace = goPath_1.getCurrentGoWorkspaceFromGOPATH(env['GOPATH'], dirname); + let dlvArgs = [mode || 'debug']; + if (mode === 'exec') { + dlvArgs = dlvArgs.concat([program]); + } + else if (currentGOWorkspace) { + dlvArgs = dlvArgs.concat([dirname.substr(currentGOWorkspace.length + 1)]); + } + dlvArgs = dlvArgs.concat(['--headless=true', '--listen=' + host + ':' + port.toString()]); + if (!this.isApiV1) { + dlvArgs.push('--api-version=2'); + } + if (launchArgs.showLog) { + dlvArgs = dlvArgs.concat(['--log=' + launchArgs.showLog.toString()]); + } + if (launchArgs.cwd) { + dlvArgs = dlvArgs.concat(['--wd=' + launchArgs.cwd]); + } + if (launchArgs.buildFlags) { + dlvArgs = dlvArgs.concat(['--build-flags=' + launchArgs.buildFlags]); + } + if (launchArgs.init) { + dlvArgs = dlvArgs.concat(['--init=' + launchArgs.init]); + } + if (launchArgs.backend) { + dlvArgs = dlvArgs.concat(['--backend=' + launchArgs.backend]); + } + if (launchArgs.output && mode === 'debug') { + dlvArgs = dlvArgs.concat(['--output=' + launchArgs.output]); + } + if (launchArgs.args) { + dlvArgs = dlvArgs.concat(['--', ...launchArgs.args]); + } + verbose(`Running: ${dlv} ${dlvArgs.join(' ')}`); + this.debugProcess = child_process_1.spawn(dlv, dlvArgs, { + cwd: dlvCwd, + env, + }); + function connectClient(port, host) { + // Add a slight delay to avoid issues on Linux with + // Delve failing calls made shortly after connection. + setTimeout(() => { + let client = json_rpc2_1.Client.$create(port, host); + client.connectSocket((err, conn) => { + if (err) + return reject(err); + return resolve(conn); + }); + }, 200); + } + this.debugProcess.stderr.on('data', chunk => { + let str = chunk.toString(); + if (this.onstderr) { + this.onstderr(str); + } + }); + this.debugProcess.stdout.on('data', chunk => { + let str = chunk.toString(); + if (this.onstdout) { + this.onstdout(str); + } + if (!serverRunning) { + serverRunning = true; + connectClient(port, host); + } + }); + this.debugProcess.on('close', (code) => { + // TODO: Report `dlv` crash to user. + logError('Process exiting with code: ' + code); + if (this.onclose) { + this.onclose(code); + } + }); + this.debugProcess.on('error', function (err) { + reject(err); + }); + }); + } + call(command, args, callback) { + this.connection.then(conn => { + conn.call('RPCServer.' + command, args, callback); + }, err => { + callback(err, null); + }); + } + callPromise(command, args) { + return new Promise((resolve, reject) => { + this.connection.then(conn => { + conn.call('RPCServer.' + command, args, (err, res) => { + if (err) + return reject(err); + resolve(res); + }); + }, err => { + reject(err); + }); + }); + } + close() { + if (!this.debugProcess) { + this.call('Command', [{ name: 'halt' }], (err, out) => { + if (err) + return logError('Failed to halt.'); + this.call('Restart', this.isApiV1 ? [] : [{ position: '', resetArgs: false, newArgs: [] }], (err, out) => { + if (err) + return logError('Failed to restart'); + }); + }); + } + else { + killTree(this.debugProcess.pid); + } + } } - -class GoDebugSession extends DebugSession { - - private _variableHandles: Handles; - private breakpoints: Map; - private threads: Set; - private debugState: DebuggerState; - private delve: Delve; - private localPathSeparator: string; - private remotePathSeparator: string; - - private launchArgs: LaunchRequestArguments; - - public constructor(debuggerLinesStartAt1: boolean, isServer: boolean = false) { - super(debuggerLinesStartAt1, isServer); - this._variableHandles = new Handles(); - this.threads = new Set(); - this.debugState = null; - this.delve = null; - this.breakpoints = new Map(); - - const logPath = path.join(os.tmpdir(), 'vscode-go-debug.txt'); - logger.init(e => this.sendEvent(e), logPath, isServer); - } - - protected initializeRequest(response: DebugProtocol.InitializeResponse, args: DebugProtocol.InitializeRequestArguments): void { - verbose('InitializeRequest'); - // This debug adapter implements the configurationDoneRequest. - response.body.supportsConfigurationDoneRequest = true; - this.sendResponse(response); - verbose('InitializeResponse'); - } - - protected findPathSeperator(path) { - if (/^(\w:[\\/]|\\\\)/.test(path)) return '\\'; - return path.includes('/') ? '/' : '\\'; - } - - protected launchRequest(response: DebugProtocol.LaunchResponse, args: LaunchRequestArguments): void { - this.launchArgs = args; - const logLevel = args.trace === 'verbose' ? - logger.LogLevel.Verbose : - args.trace ? logger.LogLevel.Log : - logger.LogLevel.Error; - logger.setMinLogLevel(logLevel); - - if (!args.program) { - this.sendErrorResponse(response, 3000, 'Failed to continue: The program attribute is missing in the debug configuration in launch.json'); - return; - } - - // Launch the Delve debugger on the program - let localPath = args.program; - let remotePath = args.remotePath || ''; - let port = args.port || random(2000, 50000); - let host = args.host || '127.0.0.1'; - - if (remotePath.length > 0) { - this.localPathSeparator = this.findPathSeperator(localPath); - this.remotePathSeparator = this.findPathSeperator(remotePath); - - let llist = localPath.split(/\/|\\/).reverse(); - let rlist = remotePath.split(/\/|\\/).reverse(); - let i = 0; - for (; i < llist.length; i++) if (llist[i] !== rlist[i] || llist[i] === 'src') break; - - if (i) { - localPath = llist.reverse().slice(0, -i).join(this.localPathSeparator) + this.localPathSeparator; - remotePath = rlist.reverse().slice(0, -i).join(this.remotePathSeparator) + this.remotePathSeparator; - } else if ((remotePath.endsWith('\\')) || (remotePath.endsWith('/'))) { - remotePath = remotePath.substring(0, remotePath.length - 1); - } - } - - this.delve = new Delve(remotePath, port, host, localPath, args); - this.delve.onstdout = (str: string) => { - this.sendEvent(new OutputEvent(str, 'stdout')); - }; - this.delve.onstderr = (str: string) => { - this.sendEvent(new OutputEvent(str, 'stderr')); - }; - this.delve.onclose = (code) => { - if (code !== 0) { - this.sendErrorResponse(response, 3000, 'Failed to continue: Check the debug console for details.'); - } else { - this.sendEvent(new TerminatedEvent()); - verbose('TerminatedEvent'); - } - verbose('Delve is closed'); - }; - - this.delve.connection.then(() => { - this.delve.call('GetVersion', [], (err, out) => { - if (err) { - logError(err); - return this.sendErrorResponse(response, 2001, 'Failed to get remote server version: "{e}"', { e: err.toString() }); - } - let clientVersion = this.delve.isApiV1 ? 1 : 2; - if (out.APIVersion !== clientVersion) { - logError(`Failed to get version: The remote server is running on delve v${out.APIVersion} API and the client is running v${clientVersion} API`); - return this.sendErrorResponse(response, - 3000, - 'Failed to get version: The remote server is running on delve v{cli} API and the client is running v{ser} API', - { ser: out.APIVersion.toString(), cli: clientVersion }); - } - }); - if (!this.delve.noDebug) { - this.sendEvent(new InitializedEvent()); - verbose('InitializeEvent'); - } - this.sendResponse(response); - }, err => { - this.sendErrorResponse(response, 3000, 'Failed to continue: "{e}"', { e: err.toString() }); - verbose('ContinueResponse'); - }); - } - - protected disconnectRequest(response: DebugProtocol.DisconnectResponse, args: DebugProtocol.DisconnectArguments): void { - verbose('DisconnectRequest'); - this.delve.close().then(() => { - super.disconnectRequest(response, args); - verbose('DisconnectResponse'); - }); - } - - protected configurationDoneRequest(response: DebugProtocol.ConfigurationDoneResponse, args: DebugProtocol.ConfigurationDoneArguments): void { - verbose('ConfigurationDoneRequest'); - - if (this.launchArgs.stopOnEntry) { - this.sendEvent(new StoppedEvent('breakpoint', 0)); - verbose('StoppedEvent("breakpoint")'); - this.sendResponse(response); - } else { - this.continueRequest(response); - } - } - - protected toDebuggerPath(path: string): string { - if (this.delve.remotePath.length === 0) { - return this.convertClientPathToDebugger(path); - } - return path.replace(this.delve.program, this.delve.remotePath).split(this.localPathSeparator).join(this.remotePathSeparator); - } - - protected toLocalPath(pathToConvert: string): string { - if (this.delve.remotePath.length === 0) { - return this.convertDebuggerPathToClient(pathToConvert); - } - - // Fix for https://github.com/Microsoft/vscode-go/issues/1178 - // When the pathToConvert is under GOROOT, replace the remote GOROOT with local GOROOT - if (!pathToConvert.startsWith(this.delve.remotePath)) { - let index = pathToConvert.indexOf(`${this.remotePathSeparator}src${this.remotePathSeparator}`); - let goroot = process.env['GOROOT']; - if (goroot && index > 0) { - return path.join(goroot, pathToConvert.substr(index)); - } - } - return pathToConvert.replace(this.delve.remotePath, this.delve.program).split(this.remotePathSeparator).join(this.localPathSeparator); - } - - protected setBreakPointsRequest(response: DebugProtocol.SetBreakpointsResponse, args: DebugProtocol.SetBreakpointsArguments): void { - verbose('SetBreakPointsRequest'); - let file = normalizePath(args.source.path); - if (!this.breakpoints.get(file)) { - this.breakpoints.set(file, []); - } - let remoteFile = this.toDebuggerPath(file); - - Promise.all(this.breakpoints.get(file).map(existingBP => { - verbose('Clearing: ' + existingBP.id); - return this.delve.callPromise('ClearBreakpoint', [this.delve.isApiV1 ? existingBP.id : { Id: existingBP.id }]); - })).then(() => { - verbose('All cleared'); - return Promise.all(args.breakpoints.map(breakpoint => { - if (this.delve.remotePath.length === 0) { - verbose('Creating on: ' + file + ':' + breakpoint.line); - } else { - verbose('Creating on: ' + file + ' (' + remoteFile + ') :' + breakpoint.line); - } - let breakpointIn = {}; - breakpointIn.file = remoteFile; - breakpointIn.line = breakpoint.line; - breakpointIn.loadArgs = this.delve.loadConfig; - breakpointIn.loadLocals = this.delve.loadConfig; - breakpointIn.cond = breakpoint.condition; - return this.delve.callPromise('CreateBreakpoint', [this.delve.isApiV1 ? breakpointIn : { Breakpoint: breakpointIn }]).then(null, err => { - verbose('Error on CreateBreakpoint: ' + err.toString()); - return null; - }); - })); - }).then(newBreakpoints => { - if (!this.delve.isApiV1) { - // Unwrap breakpoints from v2 apicall - newBreakpoints = newBreakpoints.map((bp, i) => { - return bp ? bp.Breakpoint : null; - }); - } - verbose('All set:' + JSON.stringify(newBreakpoints)); - let breakpoints = newBreakpoints.map((bp, i) => { - if (bp) { - return { verified: true, line: bp.line }; - } else { - return { verified: false, line: args.lines[i] }; - } - }); - this.breakpoints.set(file, newBreakpoints.filter(x => !!x)); - return breakpoints; - }).then(breakpoints => { - response.body = { breakpoints }; - this.sendResponse(response); - verbose('SetBreakPointsResponse'); - }, err => { - this.sendErrorResponse(response, 2002, 'Failed to set breakpoint: "{e}"', { e: err.toString() }); - logError(err); - }); - } - - protected threadsRequest(response: DebugProtocol.ThreadsResponse): void { - verbose('ThreadsRequest'); - this.delve.call('ListGoroutines', [], (err, out) => { - if (this.debugState.exited) { - // If the program exits very quickly, the initial threadsRequest will complete after it has exited. - // A TerminatedEvent has already been sent. Ignore the err returned in this case. - response.body = { threads: [] }; - return this.sendResponse(response); - } - - if (err) { - logError('Failed to get threads.'); - return this.sendErrorResponse(response, 2003, 'Unable to display threads: "{e}"', { e: err.toString() }); - } - const goroutines = this.delve.isApiV1 ? out : (out).Goroutines; - verbose('goroutines', goroutines); - let threads = goroutines.map(goroutine => - new Thread( - goroutine.id, - goroutine.userCurrentLoc.function ? goroutine.userCurrentLoc.function.name : (goroutine.userCurrentLoc.file + '@' + goroutine.userCurrentLoc.line) - ) - ); - response.body = { threads }; - this.sendResponse(response); - verbose('ThreadsResponse', threads); - }); - } - - protected stackTraceRequest(response: DebugProtocol.StackTraceResponse, args: DebugProtocol.StackTraceArguments): void { - verbose('StackTraceRequest'); - let stackTraceIn = { id: args.threadId, depth: args.levels }; - if (!this.delve.isApiV1) { - Object.assign(stackTraceIn, { full: false, cfg: this.delve.loadConfig }); - } - this.delve.call(this.delve.isApiV1 ? 'StacktraceGoroutine' : 'Stacktrace', [stackTraceIn], (err, out) => { - if (err) { - logError('Failed to produce stack trace!'); - return this.sendErrorResponse(response, 2004, 'Unable to produce stack trace: "{e}"', { e: err.toString() }); - } - const locations = this.delve.isApiV1 ? out : (out).Locations; - verbose('locations', locations); - let stackFrames = locations.map((location, i) => - new StackFrame( - i, - location.function ? location.function.name : '', - new Source( - basename(location.file), - this.toLocalPath(location.file) - ), - location.line, - 0 - ) - ); - response.body = { stackFrames }; - this.sendResponse(response); - verbose('StackTraceResponse'); - }); - } - - protected scopesRequest(response: DebugProtocol.ScopesResponse, args: DebugProtocol.ScopesArguments): void { - verbose('ScopesRequest'); - const listLocalVarsIn = { goroutineID: this.debugState.currentGoroutine.id, frame: args.frameId }; - this.delve.call('ListLocalVars', this.delve.isApiV1 ? [listLocalVarsIn] : [{ scope: listLocalVarsIn, cfg: this.delve.loadConfig }], (err, out) => { - if (err) { - logError('Failed to list local variables.'); - return this.sendErrorResponse(response, 2005, 'Unable to list locals: "{e}"', { e: err.toString() }); - } - const locals = this.delve.isApiV1 ? out : (out).Variables; - verbose('locals', locals); - let listLocalFunctionArgsIn = { goroutineID: this.debugState.currentGoroutine.id, frame: args.frameId }; - this.delve.call('ListFunctionArgs', this.delve.isApiV1 ? [listLocalFunctionArgsIn] : [{ scope: listLocalFunctionArgsIn, cfg: this.delve.loadConfig }], (err, outArgs) => { - if (err) { - logError('Failed to list function args.'); - return this.sendErrorResponse(response, 2006, 'Unable to list args: "{e}"', { e: err.toString() }); - } - const args = this.delve.isApiV1 ? outArgs : (outArgs).Args; - verbose('functionArgs', args); - let vars = args.concat(locals); - - let scopes = new Array(); - let localVariables = { - name: 'Local', - addr: 0, - type: '', - realType: '', - kind: 0, - value: '', - len: 0, - cap: 0, - children: vars, - unreadable: '' - }; - scopes.push(new Scope('Local', this._variableHandles.create(localVariables), false)); - response.body = { scopes }; - this.sendResponse(response); - verbose('ScopesResponse'); - }); - }); - } - - private convertDebugVariableToProtocolVariable(v: DebugVariable, i: number): { result: string; variablesReference: number; } { - if (v.kind === GoReflectKind.UnsafePointer) { - return { - result: `unsafe.Pointer(0x${v.children[0].addr.toString(16)})`, - variablesReference: 0 - }; - } else if (v.kind === GoReflectKind.Ptr) { - if (v.children[0].addr === 0) { - return { - result: 'nil <' + v.type + '>', - variablesReference: 0 - }; - } else if (v.children[0].type === 'void') { - return { - result: 'void', - variablesReference: 0 - }; - } else { - return { - result: '<' + v.type + '>', - variablesReference: v.children[0].children.length > 0 ? this._variableHandles.create(v.children[0]) : 0 - }; - } - } else if (v.kind === GoReflectKind.Slice) { - return { - result: '<' + v.type + '> (length: ' + v.len + ', cap: ' + v.cap + ')', - variablesReference: this._variableHandles.create(v) - }; - } else if (v.kind === GoReflectKind.Array) { - return { - result: '<' + v.type + '>', - variablesReference: this._variableHandles.create(v) - }; - } else if (v.kind === GoReflectKind.String) { - let val = v.value; - let byteLength = Buffer.byteLength(val || ''); - if (v.value && byteLength < v.len) { - val += `...+${v.len - byteLength} more`; - } - return { - result: v.unreadable ? ('<' + v.unreadable + '>') : ('"' + val + '"'), - variablesReference: 0 - }; - } else { - return { - result: convertToHex(v.value) || ('<' + v.type + '>'), - variablesReference: v.children.length > 0 ? this._variableHandles.create(v) : 0 - }; - } - } - - protected variablesRequest(response: DebugProtocol.VariablesResponse, args: DebugProtocol.VariablesArguments): void { - verbose('VariablesRequest'); - let vari = this._variableHandles.get(args.variablesReference); - let variables; - if (vari.kind === GoReflectKind.Array || vari.kind === GoReflectKind.Slice) { - variables = vari.children.map((v, i) => { - let { result, variablesReference } = this.convertDebugVariableToProtocolVariable(v, i); - return { - name: '[' + i + ']', - value: result, - variablesReference - }; - }); - } else if (vari.kind === GoReflectKind.Map) { - variables = []; - for (let i = 0; i < vari.children.length; i += 2) { - if (i + 1 >= vari.children.length) { - break; - } - let mapKey = this.convertDebugVariableToProtocolVariable(vari.children[i], i); - let mapValue = this.convertDebugVariableToProtocolVariable(vari.children[i + 1], i + 1); - variables.push({ - name: mapKey.result, - value: mapValue.result, - variablesReference: mapValue.variablesReference - }); - } - } else { - variables = vari.children.map((v, i) => { - let { result, variablesReference } = this.convertDebugVariableToProtocolVariable(v, i); - return { - name: v.name, - value: result, - variablesReference - }; - }); - } - response.body = { variables }; - this.sendResponse(response); - verbose('VariablesResponse', JSON.stringify(variables, null, ' ')); - } - - private handleReenterDebug(reason: string): void { - if (this.debugState.exited) { - this.sendEvent(new TerminatedEvent()); - verbose('TerminatedEvent'); - } else { - // [TODO] Can we avoid doing this? https://github.com/Microsoft/vscode/issues/40#issuecomment-161999881 - this.delve.call('ListGoroutines', [], (err, out) => { - if (err) { - logError('Failed to get threads.'); - } - const goroutines = this.delve.isApiV1 ? out : (out).Goroutines; - // Assume we need to stop all the threads we saw before... - let needsToBeStopped = new Set(); - this.threads.forEach(id => needsToBeStopped.add(id)); - for (let goroutine of goroutines) { - // ...but delete from list of threads to stop if we still see it - needsToBeStopped.delete(goroutine.id); - if (!this.threads.has(goroutine.id)) { - // Send started event if it's new - this.sendEvent(new ThreadEvent('started', goroutine.id)); - } - this.threads.add(goroutine.id); - } - // Send existed event if it's no longer there - needsToBeStopped.forEach(id => { - this.sendEvent(new ThreadEvent('exited', id)); - this.threads.delete(id); - }); - - let stoppedEvent = new StoppedEvent(reason, this.debugState.currentGoroutine.id); - (stoppedEvent.body).allThreadsStopped = true; - this.sendEvent(stoppedEvent); - verbose('StoppedEvent("' + reason + '")'); - }); - } - } - - protected continueRequest(response: DebugProtocol.ContinueResponse): void { - verbose('ContinueRequest'); - this.delve.call('Command', [{ name: 'continue' }], (err, out) => { - if (err) { - logError('Failed to continue.'); - } - const state = this.delve.isApiV1 ? out : (out).State; - verbose('continue state', state); - this.debugState = state; - this.handleReenterDebug('breakpoint'); - }); - this.sendResponse(response); - verbose('ContinueResponse'); - } - - protected nextRequest(response: DebugProtocol.NextResponse): void { - verbose('NextRequest'); - this.delve.call('Command', [{ name: 'next' }], (err, out) => { - if (err) { - logError('Failed to next.'); - } - const state = this.delve.isApiV1 ? out : (out).State; - verbose('next state', state); - this.debugState = state; - this.handleReenterDebug('step'); - }); - this.sendResponse(response); - verbose('NextResponse'); - } - - protected stepInRequest(response: DebugProtocol.StepInResponse): void { - verbose('StepInRequest'); - this.delve.call('Command', [{ name: 'step' }], (err, out) => { - if (err) { - logError('Failed to step.'); - } - const state = this.delve.isApiV1 ? out : (out).State; - verbose('stop state', state); - this.debugState = state; - this.handleReenterDebug('step'); - }); - this.sendResponse(response); - verbose('StepInResponse'); - } - - protected stepOutRequest(response: DebugProtocol.StepOutResponse): void { - verbose('StepOutRequest'); - this.delve.call('Command', [{ name: 'stepOut' }], (err, out) => { - if (err) { - logError('Failed to stepout.'); - } - const state = this.delve.isApiV1 ? out : (out).State; - verbose('stepout state', state); - this.debugState = state; - this.handleReenterDebug('step'); - }); - this.sendResponse(response); - verbose('StepOutResponse'); - } - - protected pauseRequest(response: DebugProtocol.PauseResponse): void { - verbose('PauseRequest'); - this.delve.call('Command', [{ name: 'halt' }], (err, out) => { - if (err) { - logError('Failed to halt.'); - return this.sendErrorResponse(response, 2010, 'Unable to halt execution: "{e}"', { e: err.toString() }); - } - const state = this.delve.isApiV1 ? out : (out).State; - verbose('pause state', state); - this.sendResponse(response); - verbose('PauseResponse'); - }); - } - - protected evaluateRequest(response: DebugProtocol.EvaluateResponse, args: DebugProtocol.EvaluateArguments): void { - verbose('EvaluateRequest'); - const scope = { - goroutineID: this.debugState.currentGoroutine.id, - frame: args.frameId - }; - let evalSymbolArgs = this.delve.isApiV1 ? { - symbol: args.expression, - scope - } : { - Expr: args.expression, - Scope: scope, - Cfg: this.delve.loadConfig - }; - this.delve.call(this.delve.isApiV1 ? 'EvalSymbol' : 'Eval', [evalSymbolArgs], (err, out) => { - if (err) { - logError('Failed to eval expression: ', JSON.stringify(evalSymbolArgs, null, ' '), '\n\rEval error:', err.toString()); - return this.sendErrorResponse(response, 2009, 'Unable to eval expression: "{e}"', { e: err.toString() }); - } - const variable = this.delve.isApiV1 ? out : (out).Variable; - response.body = this.convertDebugVariableToProtocolVariable(variable, 0); - this.sendResponse(response); - verbose('EvaluateResponse'); - }); - } +class GoDebugSession extends vscode_debugadapter_1.DebugSession { + constructor(debuggerLinesStartAt1, isServer = false) { + super(debuggerLinesStartAt1, isServer); + this._variableHandles = new vscode_debugadapter_1.Handles(); + this.threads = new Set(); + this.debugState = null; + this.delve = null; + this.breakpoints = new Map(); + const logPath = path.join(os.tmpdir(), 'vscode-go-debug.txt'); + logger.init(e => this.sendEvent(e), logPath, isServer); + } + initializeRequest(response, args) { + verbose('InitializeRequest'); + // This debug adapter implements the configurationDoneRequest. + response.body.supportsConfigurationDoneRequest = true; + this.sendResponse(response); + verbose('InitializeResponse'); + } + findPathSeperator(path) { + if (/^(\w:[\\/]|\\\\)/.test(path)) + return '\\'; + return path.includes('/') ? '/' : '\\'; + } + + convertToHex(v) { + let s = v; + verbose("DBG_BLA: " + this.numAsHex) + verbose("v: " + v) + + if (this.numAsHex === 'hex') { + s = '0x' + parseInt(v).toString(16); + } + else if (this.numAsHex === 'hexdec') { + s = '0x' + parseInt(v).toString(16) + ' (' + v + ')'; + } + return s; + } + + launchRequest(response, args) { + this.launchArgs = args; + const logLevel = args.trace === 'verbose' ? + logger.LogLevel.Verbose : + args.trace ? logger.LogLevel.Log : + logger.LogLevel.Error; + logger.setMinLogLevel(logLevel); + if (!args.program) { + this.sendErrorResponse(response, 3000, 'Failed to continue: The program attribute is missing in the debug configuration in launch.json'); + return; + } + + // controls numbers display while debugging + // "hex" (shows hex only) "hexdec" ( shows hex (dec) ) + // default: shows dec only + // "DBG_SHOW_NUMBERS_HEX": "hex" + this.numAsHex = args.env['DBG_SHOW_NUMBERS_HEX']; + + // Launch the Delve debugger on the program + let localPath = args.program; + let remotePath = args.remotePath || ''; + let port = args.port || random(2000, 50000); + let host = args.host || '127.0.0.1'; + if (remotePath.length > 0) { + this.localPathSeparator = this.findPathSeperator(localPath); + this.remotePathSeparator = this.findPathSeperator(remotePath); + let llist = localPath.split(/\/|\\/).reverse(); + let rlist = remotePath.split(/\/|\\/).reverse(); + let i = 0; + for (; i < llist.length; i++) + if (llist[i] !== rlist[i] || llist[i] === 'src') + break; + if (i) { + localPath = llist.reverse().slice(0, -i).join(this.localPathSeparator) + this.localPathSeparator; + remotePath = rlist.reverse().slice(0, -i).join(this.remotePathSeparator) + this.remotePathSeparator; + } + else if ((remotePath.endsWith('\\')) || (remotePath.endsWith('/'))) { + remotePath = remotePath.substring(0, remotePath.length - 1); + } + } + this.delve = new Delve(remotePath, port, host, localPath, args); + this.delve.onstdout = (str) => { + this.sendEvent(new vscode_debugadapter_1.OutputEvent(str, 'stdout')); + }; + this.delve.onstderr = (str) => { + this.sendEvent(new vscode_debugadapter_1.OutputEvent(str, 'stderr')); + }; + this.delve.onclose = (code) => { + if (code !== 0) { + this.sendErrorResponse(response, 3000, 'Failed to continue: Check the debug console for details.'); + } + else { + this.sendEvent(new vscode_debugadapter_1.TerminatedEvent()); + verbose('TerminatedEvent'); + } + verbose('Delve is closed'); + }; + this.delve.connection.then(() => { + this.delve.call('GetVersion', [], (err, out) => { + if (err) { + logError(err); + return this.sendErrorResponse(response, 2001, 'Failed to get remote server version: "{e}"', { e: err.toString() }); + } + let clientVersion = this.delve.isApiV1 ? 1 : 2; + if (out.APIVersion !== clientVersion) { + logError(`Failed to get version: The remote server is running on delve v${out.APIVersion} API and the client is running v${clientVersion} API`); + return this.sendErrorResponse(response, 3000, 'Failed to get version: The remote server is running on delve v{cli} API and the client is running v{ser} API', { ser: out.APIVersion.toString(), cli: clientVersion }); + } + }); + if (!this.delve.noDebug) { + this.sendEvent(new vscode_debugadapter_1.InitializedEvent()); + verbose('InitializeEvent'); + } + this.sendResponse(response); + }, err => { + this.sendErrorResponse(response, 3000, 'Failed to continue: "{e}"', { e: err.toString() }); + verbose('ContinueResponse'); + }); + } + disconnectRequest(response, args) { + verbose('DisconnectRequest'); + this.delve.close(); + super.disconnectRequest(response, args); + verbose('DisconnectResponse'); + } + configurationDoneRequest(response, args) { + verbose('ConfigurationDoneRequest'); + if (this.launchArgs.stopOnEntry) { + this.sendEvent(new vscode_debugadapter_1.StoppedEvent('breakpoint', 0)); + verbose('StoppedEvent("breakpoint")'); + this.sendResponse(response); + } + else { + this.continueRequest(response); + } + } + toDebuggerPath(path) { + if (this.delve.remotePath.length === 0) { + return this.convertClientPathToDebugger(path); + } + return path.replace(this.delve.program, this.delve.remotePath).split(this.localPathSeparator).join(this.remotePathSeparator); + } + toLocalPath(pathToConvert) { + if (this.delve.remotePath.length === 0) { + return this.convertDebuggerPathToClient(pathToConvert); + } + // Fix for https://github.com/Microsoft/vscode-go/issues/1178 + // When the pathToConvert is under GOROOT, replace the remote GOROOT with local GOROOT + if (!pathToConvert.startsWith(this.delve.remotePath)) { + let index = pathToConvert.indexOf(`${this.remotePathSeparator}src${this.remotePathSeparator}`); + let goroot = process.env['GOROOT']; + if (goroot && index > 0) { + return path.join(goroot, pathToConvert.substr(index)); + } + } + return pathToConvert.replace(this.delve.remotePath, this.delve.program).split(this.remotePathSeparator).join(this.localPathSeparator); + } + setBreakPointsRequest(response, args) { + verbose('SetBreakPointsRequest'); + let file = normalizePath(args.source.path); + if (!this.breakpoints.get(file)) { + this.breakpoints.set(file, []); + } + let remoteFile = this.toDebuggerPath(file); + Promise.all(this.breakpoints.get(file).map(existingBP => { + verbose('Clearing: ' + existingBP.id); + return this.delve.callPromise('ClearBreakpoint', [this.delve.isApiV1 ? existingBP.id : { Id: existingBP.id }]); + })).then(() => { + verbose('All cleared'); + return Promise.all(args.breakpoints.map(breakpoint => { + if (this.delve.remotePath.length === 0) { + verbose('Creating on: ' + file + ':' + breakpoint.line); + } + else { + verbose('Creating on: ' + file + ' (' + remoteFile + ') :' + breakpoint.line); + } + let breakpointIn = {}; + breakpointIn.file = remoteFile; + breakpointIn.line = breakpoint.line; + breakpointIn.loadArgs = this.delve.loadConfig; + breakpointIn.loadLocals = this.delve.loadConfig; + breakpointIn.cond = breakpoint.condition; + return this.delve.callPromise('CreateBreakpoint', [this.delve.isApiV1 ? breakpointIn : { Breakpoint: breakpointIn }]).then(null, err => { + verbose('Error on CreateBreakpoint: ' + err.toString()); + return null; + }); + })); + }).then(newBreakpoints => { + if (!this.delve.isApiV1) { + // Unwrap breakpoints from v2 apicall + newBreakpoints = newBreakpoints.map((bp, i) => { + return bp ? bp.Breakpoint : null; + }); + } + verbose('All set:' + JSON.stringify(newBreakpoints)); + let breakpoints = newBreakpoints.map((bp, i) => { + if (bp) { + return { verified: true, line: bp.line }; + } + else { + return { verified: false, line: args.lines[i] }; + } + }); + this.breakpoints.set(file, newBreakpoints.filter(x => !!x)); + return breakpoints; + }).then(breakpoints => { + response.body = { breakpoints }; + this.sendResponse(response); + verbose('SetBreakPointsResponse'); + }, err => { + this.sendErrorResponse(response, 2002, 'Failed to set breakpoint: "{e}"', { e: err.toString() }); + logError(err); + }); + } + threadsRequest(response) { + verbose('ThreadsRequest'); + this.delve.call('ListGoroutines', [], (err, out) => { + if (this.debugState.exited) { + // If the program exits very quickly, the initial threadsRequest will complete after it has exited. + // A TerminatedEvent has already been sent. Ignore the err returned in this case. + response.body = { threads: [] }; + return this.sendResponse(response); + } + if (err) { + logError('Failed to get threads.'); + return this.sendErrorResponse(response, 2003, 'Unable to display threads: "{e}"', { e: err.toString() }); + } + const goroutines = this.delve.isApiV1 ? out : out.Goroutines; + verbose('goroutines', goroutines); + let threads = goroutines.map(goroutine => new vscode_debugadapter_1.Thread(goroutine.id, goroutine.userCurrentLoc.function ? goroutine.userCurrentLoc.function.name : (goroutine.userCurrentLoc.file + '@' + goroutine.userCurrentLoc.line))); + response.body = { threads }; + this.sendResponse(response); + verbose('ThreadsResponse', threads); + }); + } + stackTraceRequest(response, args) { + verbose('StackTraceRequest'); + let stackTraceIn = { id: args.threadId, depth: args.levels }; + if (!this.delve.isApiV1) { + Object.assign(stackTraceIn, { full: false, cfg: this.delve.loadConfig }); + } + this.delve.call(this.delve.isApiV1 ? 'StacktraceGoroutine' : 'Stacktrace', [stackTraceIn], (err, out) => { + if (err) { + logError('Failed to produce stack trace!'); + return this.sendErrorResponse(response, 2004, 'Unable to produce stack trace: "{e}"', { e: err.toString() }); + } + const locations = this.delve.isApiV1 ? out : out.Locations; + verbose('locations', locations); + let stackFrames = locations.map((location, i) => new vscode_debugadapter_1.StackFrame(i, location.function ? location.function.name : '', new vscode_debugadapter_1.Source(path_1.basename(location.file), this.toLocalPath(location.file)), location.line, 0)); + response.body = { stackFrames }; + this.sendResponse(response); + verbose('StackTraceResponse'); + }); + } + scopesRequest(response, args) { + verbose('ScopesRequest'); + const listLocalVarsIn = { goroutineID: this.debugState.currentGoroutine.id, frame: args.frameId }; + this.delve.call('ListLocalVars', this.delve.isApiV1 ? [listLocalVarsIn] : [{ scope: listLocalVarsIn, cfg: this.delve.loadConfig }], (err, out) => { + if (err) { + logError('Failed to list local variables.'); + return this.sendErrorResponse(response, 2005, 'Unable to list locals: "{e}"', { e: err.toString() }); + } + const locals = this.delve.isApiV1 ? out : out.Variables; + verbose('locals', locals); + let listLocalFunctionArgsIn = { goroutineID: this.debugState.currentGoroutine.id, frame: args.frameId }; + this.delve.call('ListFunctionArgs', this.delve.isApiV1 ? [listLocalFunctionArgsIn] : [{ scope: listLocalFunctionArgsIn, cfg: this.delve.loadConfig }], (err, outArgs) => { + if (err) { + logError('Failed to list function args.'); + return this.sendErrorResponse(response, 2006, 'Unable to list args: "{e}"', { e: err.toString() }); + } + const args = this.delve.isApiV1 ? outArgs : outArgs.Args; + verbose('functionArgs', args); + let vars = args.concat(locals); + let scopes = new Array(); + let localVariables = { + name: 'Local', + addr: 0, + type: '', + realType: '', + kind: 0, + value: '', + len: 0, + cap: 0, + children: vars, + unreadable: '' + }; + scopes.push(new vscode_debugadapter_1.Scope('Local', this._variableHandles.create(localVariables), false)); + response.body = { scopes }; + this.sendResponse(response); + verbose('ScopesResponse'); + }); + }); + } + + convertDebugVariableToProtocolVariable(v, i) { + if (v.kind === GoReflectKind.UnsafePointer) { + return { + result: `unsafe.Pointer(0x${v.children[0].addr.toString(16)})`, + variablesReference: 0 + }; + } + else if (v.kind === GoReflectKind.Ptr) { + if (v.children[0].addr === 0) { + return { + result: 'nil <' + v.type + '>', + variablesReference: 0 + }; + } + else if (v.children[0].type === 'void') { + return { + result: 'void', + variablesReference: 0 + }; + } + else { + return { + result: '<' + v.type + '>', + variablesReference: v.children[0].children.length > 0 ? this._variableHandles.create(v.children[0]) : 0 + }; + } + } + else if (v.kind === GoReflectKind.Slice) { + return { + result: '<' + v.type + '> (length: ' + v.len + ', cap: ' + v.cap + ')', + variablesReference: this._variableHandles.create(v) + }; + } + else if (v.kind === GoReflectKind.Array) { + return { + result: '<' + v.type + '>', + variablesReference: this._variableHandles.create(v) + }; + } + else if (v.kind === GoReflectKind.String) { + let val = v.value; + if (v.value && v.value.length < v.len) { + val += `...+${v.len - v.value.length} more`; + } + return { + result: v.unreadable ? ('<' + v.unreadable + '>') : ('"' + val + '"'), + variablesReference: 0 + }; + } + else { + return { + result: this.convertToHex(v.value) || ('<' + v.type + '>'), + variablesReference: v.children.length > 0 ? this._variableHandles.create(v) : 0 + }; + } + } + variablesRequest(response, args) { + verbose('VariablesRequest'); + let vari = this._variableHandles.get(args.variablesReference); + let variables; + if (vari.kind === GoReflectKind.Array || vari.kind === GoReflectKind.Slice) { + variables = vari.children.map((v, i) => { + let { result, variablesReference } = this.convertDebugVariableToProtocolVariable(v, i); + return { + name: '[' + i + ']', + value: result, + variablesReference + }; + }); + } + else if (vari.kind === GoReflectKind.Map) { + variables = []; + for (let i = 0; i < vari.children.length; i += 2) { + if (i + 1 >= vari.children.length) { + break; + } + let mapKey = this.convertDebugVariableToProtocolVariable(vari.children[i], i); + let mapValue = this.convertDebugVariableToProtocolVariable(vari.children[i + 1], i + 1); + variables.push({ + name: mapKey.result, + value: result, + variablesReference: mapValue.variablesReference + }); + } + } + else { + variables = vari.children.map((v, i) => { + let { result, variablesReference } = this.convertDebugVariableToProtocolVariable(v, i); + return { + name: v.name, + value: result, + variablesReference + }; + }); + } + response.body = { variables }; + this.sendResponse(response); + verbose('VariablesResponse', JSON.stringify(variables, null, ' ')); + } + handleReenterDebug(reason) { + if (this.debugState.exited) { + this.sendEvent(new vscode_debugadapter_1.TerminatedEvent()); + verbose('TerminatedEvent'); + } + else { + // [TODO] Can we avoid doing this? https://github.com/Microsoft/vscode/issues/40#issuecomment-161999881 + this.delve.call('ListGoroutines', [], (err, out) => { + if (err) { + logError('Failed to get threads.'); + } + const goroutines = this.delve.isApiV1 ? out : out.Goroutines; + // Assume we need to stop all the threads we saw before... + let needsToBeStopped = new Set(); + this.threads.forEach(id => needsToBeStopped.add(id)); + for (let goroutine of goroutines) { + // ...but delete from list of threads to stop if we still see it + needsToBeStopped.delete(goroutine.id); + if (!this.threads.has(goroutine.id)) { + // Send started event if it's new + this.sendEvent(new vscode_debugadapter_1.ThreadEvent('started', goroutine.id)); + } + this.threads.add(goroutine.id); + } + // Send existed event if it's no longer there + needsToBeStopped.forEach(id => { + this.sendEvent(new vscode_debugadapter_1.ThreadEvent('exited', id)); + this.threads.delete(id); + }); + let stoppedEvent = new vscode_debugadapter_1.StoppedEvent(reason, this.debugState.currentGoroutine.id); + stoppedEvent.body.allThreadsStopped = true; + this.sendEvent(stoppedEvent); + verbose('StoppedEvent("' + reason + '")'); + }); + } + } + continueRequest(response) { + verbose('ContinueRequest'); + this.delve.call('Command', [{ name: 'continue' }], (err, out) => { + if (err) { + logError('Failed to continue.'); + } + const state = this.delve.isApiV1 ? out : out.State; + verbose('continue state', state); + this.debugState = state; + this.handleReenterDebug('breakpoint'); + }); + this.sendResponse(response); + verbose('ContinueResponse'); + } + nextRequest(response) { + verbose('NextRequest'); + this.delve.call('Command', [{ name: 'next' }], (err, out) => { + if (err) { + logError('Failed to next.'); + } + const state = this.delve.isApiV1 ? out : out.State; + verbose('next state', state); + this.debugState = state; + this.handleReenterDebug('step'); + }); + this.sendResponse(response); + verbose('NextResponse'); + } + stepInRequest(response) { + verbose('StepInRequest'); + this.delve.call('Command', [{ name: 'step' }], (err, out) => { + if (err) { + logError('Failed to step.'); + } + const state = this.delve.isApiV1 ? out : out.State; + verbose('stop state', state); + this.debugState = state; + this.handleReenterDebug('step'); + }); + this.sendResponse(response); + verbose('StepInResponse'); + } + stepOutRequest(response) { + verbose('StepOutRequest'); + this.delve.call('Command', [{ name: 'stepOut' }], (err, out) => { + if (err) { + logError('Failed to stepout.'); + } + const state = this.delve.isApiV1 ? out : out.State; + verbose('stepout state', state); + this.debugState = state; + this.handleReenterDebug('step'); + }); + this.sendResponse(response); + verbose('StepOutResponse'); + } + pauseRequest(response) { + verbose('PauseRequest'); + this.delve.call('Command', [{ name: 'halt' }], (err, out) => { + if (err) { + logError('Failed to halt.'); + return this.sendErrorResponse(response, 2010, 'Unable to halt execution: "{e}"', { e: err.toString() }); + } + const state = this.delve.isApiV1 ? out : out.State; + verbose('pause state', state); + this.sendResponse(response); + verbose('PauseResponse'); + }); + } + evaluateRequest(response, args) { + verbose('EvaluateRequest'); + const scope = { + goroutineID: this.debugState.currentGoroutine.id, + frame: args.frameId + }; + let evalSymbolArgs = this.delve.isApiV1 ? { + symbol: args.expression, + scope + } : { + Expr: args.expression, + Scope: scope, + Cfg: this.delve.loadConfig + }; + this.delve.call(this.delve.isApiV1 ? 'EvalSymbol' : 'Eval', [evalSymbolArgs], (err, out) => { + if (err) { + logError('Failed to eval expression: ', JSON.stringify(evalSymbolArgs, null, ' '), '\n\rEval error:', err.toString()); + return this.sendErrorResponse(response, 2009, 'Unable to eval expression: "{e}"', { e: err.toString() }); + } + const variable = this.delve.isApiV1 ? out : out.Variable; + response.body = this.convertDebugVariableToProtocolVariable(variable, 0); + this.sendResponse(response); + verbose('EvaluateResponse'); + }); + } } - -function random(low: number, high: number): number { - return Math.floor(Math.random() * (high - low) + low); +function random(low, high) { + return Math.floor(Math.random() * (high - low) + low); } - -DebugSession.run(GoDebugSession); +function killTree(processId) { + if (process.platform === 'win32') { + const TASK_KILL = 'C:\\Windows\\System32\\taskkill.exe'; + // when killing a process in Windows its child processes are *not* killed but become root processes. + // Therefore we use TASKKILL.EXE + try { + child_process_1.execSync(`${TASK_KILL} /F /T /PID ${processId}`); + } + catch (err) { + } + } + else { + // on linux and OS X we kill all direct and indirect child processes as well + try { + const cmd = path.join(__dirname, '../../../scripts/terminateProcess.sh'); + child_process_1.spawnSync(cmd, [processId.toString()]); + } + catch (err) { + } + } +} +vscode_debugadapter_1.DebugSession.run(GoDebugSession); +//# sourceMappingURL=goDebug.js.map From 8357368b62ad88e6a1a038a3d4f01cba7de12525 Mon Sep 17 00:00:00 2001 From: Valerio Lupi Date: Mon, 23 Jul 2018 20:25:23 +0200 Subject: [PATCH 05/15] fixed previous commit --- src/debugAdapter/goDebug.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/debugAdapter/goDebug.ts b/src/debugAdapter/goDebug.ts index 1f809ff40..c9207d5ee 100644 --- a/src/debugAdapter/goDebug.ts +++ b/src/debugAdapter/goDebug.ts @@ -317,8 +317,6 @@ class GoDebugSession extends vscode_debugadapter_1.DebugSession { convertToHex(v) { let s = v; - verbose("DBG_BLA: " + this.numAsHex) - verbose("v: " + v) if (this.numAsHex === 'hex') { s = '0x' + parseInt(v).toString(16); @@ -838,4 +836,4 @@ function killTree(processId) { } } vscode_debugadapter_1.DebugSession.run(GoDebugSession); -//# sourceMappingURL=goDebug.js.map + From c04c08bcc9ac82cc2590ca9bc9c0e14ba4cbe844 Mon Sep 17 00:00:00 2001 From: Valerio Lupi Date: Mon, 23 Jul 2018 20:38:15 +0200 Subject: [PATCH 06/15] goDebug.ts should be correct now --- src/debugAdapter/goDebug.ts | 1846 +++++++++++++++++++---------------- 1 file changed, 1024 insertions(+), 822 deletions(-) diff --git a/src/debugAdapter/goDebug.ts b/src/debugAdapter/goDebug.ts index c9207d5ee..0e97e7675 100644 --- a/src/debugAdapter/goDebug.ts +++ b/src/debugAdapter/goDebug.ts @@ -1,839 +1,1041 @@ -"use strict"; /*--------------------------------------------------------- * Copyright (C) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------*/ -Object.defineProperty(exports, "__esModule", { value: true }); -const path = require("path"); -const os = require("os"); -const vscode_debugadapter_1 = require("vscode-debugadapter"); -const fs_1 = require("fs"); -const path_1 = require("path"); -const child_process_1 = require("child_process"); -const json_rpc2_1 = require("json-rpc2"); -const goPath_1 = require("../goPath"); -const logger = require("vscode-debug-logger"); + +import * as path from 'path'; +import * as os from 'os'; +import { DebugProtocol } from 'vscode-debugprotocol'; +import { DebugSession, InitializedEvent, TerminatedEvent, ThreadEvent, StoppedEvent, OutputEvent, Thread, StackFrame, Scope, Source, Handles } from 'vscode-debugadapter'; +import { existsSync, lstatSync } from 'fs'; +import { basename, dirname, extname } from 'path'; +import { spawn, ChildProcess, execSync, spawnSync } from 'child_process'; +import { Client, RPCConnection } from 'json-rpc2'; +import { parseEnvFile, getBinPathWithPreferredGopath, resolveHomeDir, getInferredGopath, getCurrentGoWorkspaceFromGOPATH, envPath, fixDriveCasingInWindows } from '../goPath'; +import * as logger from 'vscode-debug-logger'; + require('console-stamp')(console); + // This enum should stay in sync with https://golang.org/pkg/reflect/#Kind -var GoReflectKind; -(function (GoReflectKind) { - GoReflectKind[GoReflectKind["Invalid"] = 0] = "Invalid"; - GoReflectKind[GoReflectKind["Bool"] = 1] = "Bool"; - GoReflectKind[GoReflectKind["Int"] = 2] = "Int"; - GoReflectKind[GoReflectKind["Int8"] = 3] = "Int8"; - GoReflectKind[GoReflectKind["Int16"] = 4] = "Int16"; - GoReflectKind[GoReflectKind["Int32"] = 5] = "Int32"; - GoReflectKind[GoReflectKind["Int64"] = 6] = "Int64"; - GoReflectKind[GoReflectKind["Uint"] = 7] = "Uint"; - GoReflectKind[GoReflectKind["Uint8"] = 8] = "Uint8"; - GoReflectKind[GoReflectKind["Uint16"] = 9] = "Uint16"; - GoReflectKind[GoReflectKind["Uint32"] = 10] = "Uint32"; - GoReflectKind[GoReflectKind["Uint64"] = 11] = "Uint64"; - GoReflectKind[GoReflectKind["Uintptr"] = 12] = "Uintptr"; - GoReflectKind[GoReflectKind["Float32"] = 13] = "Float32"; - GoReflectKind[GoReflectKind["Float64"] = 14] = "Float64"; - GoReflectKind[GoReflectKind["Complex64"] = 15] = "Complex64"; - GoReflectKind[GoReflectKind["Complex128"] = 16] = "Complex128"; - GoReflectKind[GoReflectKind["Array"] = 17] = "Array"; - GoReflectKind[GoReflectKind["Chan"] = 18] = "Chan"; - GoReflectKind[GoReflectKind["Func"] = 19] = "Func"; - GoReflectKind[GoReflectKind["Interface"] = 20] = "Interface"; - GoReflectKind[GoReflectKind["Map"] = 21] = "Map"; - GoReflectKind[GoReflectKind["Ptr"] = 22] = "Ptr"; - GoReflectKind[GoReflectKind["Slice"] = 23] = "Slice"; - GoReflectKind[GoReflectKind["String"] = 24] = "String"; - GoReflectKind[GoReflectKind["Struct"] = 25] = "Struct"; - GoReflectKind[GoReflectKind["UnsafePointer"] = 26] = "UnsafePointer"; -})(GoReflectKind || (GoReflectKind = {})); -; -; -process.on('uncaughtException', (err) => { - const errMessage = err && (err.stack || err.message); - logger.error(`Unhandled error in debug adapter: ${errMessage}`); - throw err; -}); +enum GoReflectKind { + Invalid = 0, + Bool, + Int, + Int8, + Int16, + Int32, + Int64, + Uint, + Uint8, + Uint16, + Uint32, + Uint64, + Uintptr, + Float32, + Float64, + Complex64, + Complex128, + Array, + Chan, + Func, + Interface, + Map, + Ptr, + Slice, + String, + Struct, + UnsafePointer +} + +// These types should stay in sync with: +// https://github.com/derekparker/delve/blob/master/service/api/types.go +interface CommandOut { + State: DebuggerState; +} -function logArgsToString(args) { - return args.map(arg => { - return typeof arg === 'string' ? - arg : - JSON.stringify(arg); - }).join(' '); +interface DebuggerState { + exited: boolean; + exitStatus: number; + breakPoint: DebugBreakpoint; + breakPointInfo: {}; + currentThread: DebugThread; + currentGoroutine: DebugGoroutine; } -function verbose(...args) { - logger.verbose(logArgsToString(args)); + +interface ClearBreakpointOut { + breakpoint: DebugBreakpoint; } -function log(...args) { - logger.log(logArgsToString(args)); + +interface CreateBreakpointOut { + breakpoint: DebugBreakpoint; } -function logError(...args) { - logger.error(logArgsToString(args)); + +interface GetVersionOut { + DelveVersion: string; + APIVersion: number; } -function normalizePath(filePath) { - if (process.platform === 'win32') { - filePath = path.normalize(filePath); - return goPath_1.fixDriveCasingInWindows(filePath); - } - return filePath; + +interface DebugBreakpoint { + addr: number; + continue: boolean; + file: string; + functionName?: string; + goroutine: boolean; + id: number; + name: string; + line: number; + stacktrace: number; + variables?: DebugVariable[]; + loadArgs?: LoadConfig; + loadLocals?: LoadConfig; + cond?: string; } -class Delve { - constructor(remotePath, port, host, program, launchArgs) { - this.program = normalizePath(program); - this.remotePath = remotePath; - this.isApiV1 = typeof launchArgs.useApiV1 === 'boolean' ? launchArgs.useApiV1 : true; - let mode = launchArgs.mode; - let dlvCwd = path_1.dirname(program); - let isProgramDirectory = false; - let launchArgsEnv = launchArgs.env || {}; - this.connection = new Promise((resolve, reject) => { - // Validations on the program - if (!program) { - return reject('The program attribute is missing in the debug configuration in launch.json'); - } - try { - let pstats = fs_1.lstatSync(program); - if (pstats.isDirectory()) { - if (mode === 'exec') { - logError(`The program "${program}" must not be a directory in exec mode`); - return reject('The program attribute must be an executable in exec mode'); - } - dlvCwd = program; - isProgramDirectory = true; - } - else if (mode !== 'exec' && path_1.extname(program) !== '.go') { - logError(`The program "${program}" must be a valid go file in debug mode`); - return reject('The program attribute must be a directory or .go file in debug mode'); - } - } - catch (e) { - logError(`The program "${program}" does not exist: ${e}`); - return reject('The program attribute must point to valid directory, .go file or executable.'); - } - // read env from disk and merge into env variables - let fileEnv = {}; - try { - fileEnv = goPath_1.parseEnvFile(launchArgs.envFile); - } - catch (e) { - return reject(e); - } - let env = Object.assign({}, process.env, fileEnv, launchArgsEnv); - let dirname = isProgramDirectory ? program : path.dirname(program); - if (!env['GOPATH'] && (mode === 'debug' || mode === 'test')) { - // If no GOPATH is set, then infer it from the file/package path - // Not applicable to exec mode in which case `program` need not point to source code under GOPATH - env['GOPATH'] = goPath_1.getInferredGopath(dirname) || env['GOPATH']; - } - verbose(`Using GOPATH: ${env['GOPATH']}`); - if (!!launchArgs.noDebug) { - if (mode === 'debug' && !isProgramDirectory) { - this.noDebug = true; - this.debugProcess = child_process_1.spawn(goPath_1.getBinPathWithPreferredGopath('go', []), ['run', program], { env }); - this.debugProcess.stderr.on('data', chunk => { - let str = chunk.toString(); - if (this.onstderr) { - this.onstderr(str); - } - }); - this.debugProcess.stdout.on('data', chunk => { - let str = chunk.toString(); - if (this.onstdout) { - this.onstdout(str); - } - }); - this.debugProcess.on('close', (code) => { - logError('Process exiting with code: ' + code); - if (this.onclose) { - this.onclose(code); - } - }); - this.debugProcess.on('error', function (err) { - reject(err); - }); - resolve(); - return; - } - } - this.noDebug = false; - let serverRunning = false; - // Get default LoadConfig values according to delve API: - // https://github.com/derekparker/delve/blob/c5c41f635244a22d93771def1c31cf1e0e9a2e63/service/rpc1/server.go#L13 - // https://github.com/derekparker/delve/blob/c5c41f635244a22d93771def1c31cf1e0e9a2e63/service/rpc2/server.go#L423 - this.loadConfig = launchArgs.dlvLoadConfig || { - followPointers: true, - maxVariableRecurse: 1, - maxStringLen: 64, - maxArrayValues: 64, - maxStructFields: -1 - }; - if (mode === 'remote') { - this.debugProcess = null; - serverRunning = true; // assume server is running when in remote mode - connectClient(port, host); - return; - } - let dlv = goPath_1.getBinPathWithPreferredGopath('dlv', [goPath_1.resolveHomeDir(env['GOPATH']), process.env['GOPATH']]); - if (!fs_1.existsSync(dlv)) { - verbose(`Couldnt find dlv at ${process.env['GOPATH']}${env['GOPATH'] ? ', ' + env['GOPATH'] : ''} or ${goPath_1.envPath}`); - return reject(`Cannot find Delve debugger. Install from https://github.com/derekparker/delve & ensure it is in your "GOPATH/bin" or "PATH".`); - } - let currentGOWorkspace = goPath_1.getCurrentGoWorkspaceFromGOPATH(env['GOPATH'], dirname); - let dlvArgs = [mode || 'debug']; - if (mode === 'exec') { - dlvArgs = dlvArgs.concat([program]); - } - else if (currentGOWorkspace) { - dlvArgs = dlvArgs.concat([dirname.substr(currentGOWorkspace.length + 1)]); - } - dlvArgs = dlvArgs.concat(['--headless=true', '--listen=' + host + ':' + port.toString()]); - if (!this.isApiV1) { - dlvArgs.push('--api-version=2'); - } - if (launchArgs.showLog) { - dlvArgs = dlvArgs.concat(['--log=' + launchArgs.showLog.toString()]); - } - if (launchArgs.cwd) { - dlvArgs = dlvArgs.concat(['--wd=' + launchArgs.cwd]); - } - if (launchArgs.buildFlags) { - dlvArgs = dlvArgs.concat(['--build-flags=' + launchArgs.buildFlags]); - } - if (launchArgs.init) { - dlvArgs = dlvArgs.concat(['--init=' + launchArgs.init]); - } - if (launchArgs.backend) { - dlvArgs = dlvArgs.concat(['--backend=' + launchArgs.backend]); - } - if (launchArgs.output && mode === 'debug') { - dlvArgs = dlvArgs.concat(['--output=' + launchArgs.output]); - } - if (launchArgs.args) { - dlvArgs = dlvArgs.concat(['--', ...launchArgs.args]); - } - verbose(`Running: ${dlv} ${dlvArgs.join(' ')}`); - this.debugProcess = child_process_1.spawn(dlv, dlvArgs, { - cwd: dlvCwd, - env, - }); - function connectClient(port, host) { - // Add a slight delay to avoid issues on Linux with - // Delve failing calls made shortly after connection. - setTimeout(() => { - let client = json_rpc2_1.Client.$create(port, host); - client.connectSocket((err, conn) => { - if (err) - return reject(err); - return resolve(conn); - }); - }, 200); - } - this.debugProcess.stderr.on('data', chunk => { - let str = chunk.toString(); - if (this.onstderr) { - this.onstderr(str); - } - }); - this.debugProcess.stdout.on('data', chunk => { - let str = chunk.toString(); - if (this.onstdout) { - this.onstdout(str); - } - if (!serverRunning) { - serverRunning = true; - connectClient(port, host); - } - }); - this.debugProcess.on('close', (code) => { - // TODO: Report `dlv` crash to user. - logError('Process exiting with code: ' + code); - if (this.onclose) { - this.onclose(code); - } - }); - this.debugProcess.on('error', function (err) { - reject(err); - }); - }); - } - call(command, args, callback) { - this.connection.then(conn => { - conn.call('RPCServer.' + command, args, callback); - }, err => { - callback(err, null); - }); - } - callPromise(command, args) { - return new Promise((resolve, reject) => { - this.connection.then(conn => { - conn.call('RPCServer.' + command, args, (err, res) => { - if (err) - return reject(err); - resolve(res); - }); - }, err => { - reject(err); - }); - }); - } - close() { - if (!this.debugProcess) { - this.call('Command', [{ name: 'halt' }], (err, out) => { - if (err) - return logError('Failed to halt.'); - this.call('Restart', this.isApiV1 ? [] : [{ position: '', resetArgs: false, newArgs: [] }], (err, out) => { - if (err) - return logError('Failed to restart'); - }); - }); - } - else { - killTree(this.debugProcess.pid); - } - } + +interface LoadConfig { + // FollowPointers requests pointers to be automatically dereferenced. + followPointers: boolean; + // MaxVariableRecurse is how far to recurse when evaluating nested types. + maxVariableRecurse: number; + // MaxStringLen is the maximum number of bytes read from a string + maxStringLen: number; + // MaxArrayValues is the maximum number of elements read from an array, a slice or a map. + maxArrayValues: number; + // MaxStructFields is the maximum number of fields read from a struct, -1 will read all fields. + maxStructFields: number; +}; + +interface DebugThread { + file: string; + id: number; + line: number; + pc: number; + function?: DebugFunction; +}; + +interface StacktraceOut { + Locations: DebugLocation[]; +} + +interface DebugLocation { + pc: number; + file: string; + line: number; + function: DebugFunction; +} + +interface DebugFunction { + name: string; + value: number; + type: number; + goType: number; + args: DebugVariable[]; + locals: DebugVariable[]; +} + +interface ListLocalVarsOut { + Variables: DebugVariable[]; } -class GoDebugSession extends vscode_debugadapter_1.DebugSession { - constructor(debuggerLinesStartAt1, isServer = false) { - super(debuggerLinesStartAt1, isServer); - this._variableHandles = new vscode_debugadapter_1.Handles(); - this.threads = new Set(); - this.debugState = null; - this.delve = null; - this.breakpoints = new Map(); - const logPath = path.join(os.tmpdir(), 'vscode-go-debug.txt'); - logger.init(e => this.sendEvent(e), logPath, isServer); - } - initializeRequest(response, args) { - verbose('InitializeRequest'); - // This debug adapter implements the configurationDoneRequest. - response.body.supportsConfigurationDoneRequest = true; - this.sendResponse(response); - verbose('InitializeResponse'); - } - findPathSeperator(path) { - if (/^(\w:[\\/]|\\\\)/.test(path)) - return '\\'; - return path.includes('/') ? '/' : '\\'; - } - - convertToHex(v) { - let s = v; - - if (this.numAsHex === 'hex') { - s = '0x' + parseInt(v).toString(16); - } - else if (this.numAsHex === 'hexdec') { - s = '0x' + parseInt(v).toString(16) + ' (' + v + ')'; - } - return s; - } - - launchRequest(response, args) { - this.launchArgs = args; - const logLevel = args.trace === 'verbose' ? - logger.LogLevel.Verbose : - args.trace ? logger.LogLevel.Log : - logger.LogLevel.Error; - logger.setMinLogLevel(logLevel); - if (!args.program) { - this.sendErrorResponse(response, 3000, 'Failed to continue: The program attribute is missing in the debug configuration in launch.json'); - return; - } - - // controls numbers display while debugging - // "hex" (shows hex only) "hexdec" ( shows hex (dec) ) - // default: shows dec only - // "DBG_SHOW_NUMBERS_HEX": "hex" - this.numAsHex = args.env['DBG_SHOW_NUMBERS_HEX']; - - // Launch the Delve debugger on the program - let localPath = args.program; - let remotePath = args.remotePath || ''; - let port = args.port || random(2000, 50000); - let host = args.host || '127.0.0.1'; - if (remotePath.length > 0) { - this.localPathSeparator = this.findPathSeperator(localPath); - this.remotePathSeparator = this.findPathSeperator(remotePath); - let llist = localPath.split(/\/|\\/).reverse(); - let rlist = remotePath.split(/\/|\\/).reverse(); - let i = 0; - for (; i < llist.length; i++) - if (llist[i] !== rlist[i] || llist[i] === 'src') - break; - if (i) { - localPath = llist.reverse().slice(0, -i).join(this.localPathSeparator) + this.localPathSeparator; - remotePath = rlist.reverse().slice(0, -i).join(this.remotePathSeparator) + this.remotePathSeparator; - } - else if ((remotePath.endsWith('\\')) || (remotePath.endsWith('/'))) { - remotePath = remotePath.substring(0, remotePath.length - 1); - } - } - this.delve = new Delve(remotePath, port, host, localPath, args); - this.delve.onstdout = (str) => { - this.sendEvent(new vscode_debugadapter_1.OutputEvent(str, 'stdout')); - }; - this.delve.onstderr = (str) => { - this.sendEvent(new vscode_debugadapter_1.OutputEvent(str, 'stderr')); - }; - this.delve.onclose = (code) => { - if (code !== 0) { - this.sendErrorResponse(response, 3000, 'Failed to continue: Check the debug console for details.'); - } - else { - this.sendEvent(new vscode_debugadapter_1.TerminatedEvent()); - verbose('TerminatedEvent'); - } - verbose('Delve is closed'); - }; - this.delve.connection.then(() => { - this.delve.call('GetVersion', [], (err, out) => { - if (err) { - logError(err); - return this.sendErrorResponse(response, 2001, 'Failed to get remote server version: "{e}"', { e: err.toString() }); - } - let clientVersion = this.delve.isApiV1 ? 1 : 2; - if (out.APIVersion !== clientVersion) { - logError(`Failed to get version: The remote server is running on delve v${out.APIVersion} API and the client is running v${clientVersion} API`); - return this.sendErrorResponse(response, 3000, 'Failed to get version: The remote server is running on delve v{cli} API and the client is running v{ser} API', { ser: out.APIVersion.toString(), cli: clientVersion }); - } - }); - if (!this.delve.noDebug) { - this.sendEvent(new vscode_debugadapter_1.InitializedEvent()); - verbose('InitializeEvent'); - } - this.sendResponse(response); - }, err => { - this.sendErrorResponse(response, 3000, 'Failed to continue: "{e}"', { e: err.toString() }); - verbose('ContinueResponse'); - }); - } - disconnectRequest(response, args) { - verbose('DisconnectRequest'); - this.delve.close(); - super.disconnectRequest(response, args); - verbose('DisconnectResponse'); - } - configurationDoneRequest(response, args) { - verbose('ConfigurationDoneRequest'); - if (this.launchArgs.stopOnEntry) { - this.sendEvent(new vscode_debugadapter_1.StoppedEvent('breakpoint', 0)); - verbose('StoppedEvent("breakpoint")'); - this.sendResponse(response); - } - else { - this.continueRequest(response); - } - } - toDebuggerPath(path) { - if (this.delve.remotePath.length === 0) { - return this.convertClientPathToDebugger(path); - } - return path.replace(this.delve.program, this.delve.remotePath).split(this.localPathSeparator).join(this.remotePathSeparator); - } - toLocalPath(pathToConvert) { - if (this.delve.remotePath.length === 0) { - return this.convertDebuggerPathToClient(pathToConvert); - } - // Fix for https://github.com/Microsoft/vscode-go/issues/1178 - // When the pathToConvert is under GOROOT, replace the remote GOROOT with local GOROOT - if (!pathToConvert.startsWith(this.delve.remotePath)) { - let index = pathToConvert.indexOf(`${this.remotePathSeparator}src${this.remotePathSeparator}`); - let goroot = process.env['GOROOT']; - if (goroot && index > 0) { - return path.join(goroot, pathToConvert.substr(index)); - } - } - return pathToConvert.replace(this.delve.remotePath, this.delve.program).split(this.remotePathSeparator).join(this.localPathSeparator); - } - setBreakPointsRequest(response, args) { - verbose('SetBreakPointsRequest'); - let file = normalizePath(args.source.path); - if (!this.breakpoints.get(file)) { - this.breakpoints.set(file, []); - } - let remoteFile = this.toDebuggerPath(file); - Promise.all(this.breakpoints.get(file).map(existingBP => { - verbose('Clearing: ' + existingBP.id); - return this.delve.callPromise('ClearBreakpoint', [this.delve.isApiV1 ? existingBP.id : { Id: existingBP.id }]); - })).then(() => { - verbose('All cleared'); - return Promise.all(args.breakpoints.map(breakpoint => { - if (this.delve.remotePath.length === 0) { - verbose('Creating on: ' + file + ':' + breakpoint.line); - } - else { - verbose('Creating on: ' + file + ' (' + remoteFile + ') :' + breakpoint.line); - } - let breakpointIn = {}; - breakpointIn.file = remoteFile; - breakpointIn.line = breakpoint.line; - breakpointIn.loadArgs = this.delve.loadConfig; - breakpointIn.loadLocals = this.delve.loadConfig; - breakpointIn.cond = breakpoint.condition; - return this.delve.callPromise('CreateBreakpoint', [this.delve.isApiV1 ? breakpointIn : { Breakpoint: breakpointIn }]).then(null, err => { - verbose('Error on CreateBreakpoint: ' + err.toString()); - return null; - }); - })); - }).then(newBreakpoints => { - if (!this.delve.isApiV1) { - // Unwrap breakpoints from v2 apicall - newBreakpoints = newBreakpoints.map((bp, i) => { - return bp ? bp.Breakpoint : null; - }); - } - verbose('All set:' + JSON.stringify(newBreakpoints)); - let breakpoints = newBreakpoints.map((bp, i) => { - if (bp) { - return { verified: true, line: bp.line }; - } - else { - return { verified: false, line: args.lines[i] }; - } - }); - this.breakpoints.set(file, newBreakpoints.filter(x => !!x)); - return breakpoints; - }).then(breakpoints => { - response.body = { breakpoints }; - this.sendResponse(response); - verbose('SetBreakPointsResponse'); - }, err => { - this.sendErrorResponse(response, 2002, 'Failed to set breakpoint: "{e}"', { e: err.toString() }); - logError(err); - }); - } - threadsRequest(response) { - verbose('ThreadsRequest'); - this.delve.call('ListGoroutines', [], (err, out) => { - if (this.debugState.exited) { - // If the program exits very quickly, the initial threadsRequest will complete after it has exited. - // A TerminatedEvent has already been sent. Ignore the err returned in this case. - response.body = { threads: [] }; - return this.sendResponse(response); - } - if (err) { - logError('Failed to get threads.'); - return this.sendErrorResponse(response, 2003, 'Unable to display threads: "{e}"', { e: err.toString() }); - } - const goroutines = this.delve.isApiV1 ? out : out.Goroutines; - verbose('goroutines', goroutines); - let threads = goroutines.map(goroutine => new vscode_debugadapter_1.Thread(goroutine.id, goroutine.userCurrentLoc.function ? goroutine.userCurrentLoc.function.name : (goroutine.userCurrentLoc.file + '@' + goroutine.userCurrentLoc.line))); - response.body = { threads }; - this.sendResponse(response); - verbose('ThreadsResponse', threads); - }); - } - stackTraceRequest(response, args) { - verbose('StackTraceRequest'); - let stackTraceIn = { id: args.threadId, depth: args.levels }; - if (!this.delve.isApiV1) { - Object.assign(stackTraceIn, { full: false, cfg: this.delve.loadConfig }); - } - this.delve.call(this.delve.isApiV1 ? 'StacktraceGoroutine' : 'Stacktrace', [stackTraceIn], (err, out) => { - if (err) { - logError('Failed to produce stack trace!'); - return this.sendErrorResponse(response, 2004, 'Unable to produce stack trace: "{e}"', { e: err.toString() }); - } - const locations = this.delve.isApiV1 ? out : out.Locations; - verbose('locations', locations); - let stackFrames = locations.map((location, i) => new vscode_debugadapter_1.StackFrame(i, location.function ? location.function.name : '', new vscode_debugadapter_1.Source(path_1.basename(location.file), this.toLocalPath(location.file)), location.line, 0)); - response.body = { stackFrames }; - this.sendResponse(response); - verbose('StackTraceResponse'); - }); - } - scopesRequest(response, args) { - verbose('ScopesRequest'); - const listLocalVarsIn = { goroutineID: this.debugState.currentGoroutine.id, frame: args.frameId }; - this.delve.call('ListLocalVars', this.delve.isApiV1 ? [listLocalVarsIn] : [{ scope: listLocalVarsIn, cfg: this.delve.loadConfig }], (err, out) => { - if (err) { - logError('Failed to list local variables.'); - return this.sendErrorResponse(response, 2005, 'Unable to list locals: "{e}"', { e: err.toString() }); - } - const locals = this.delve.isApiV1 ? out : out.Variables; - verbose('locals', locals); - let listLocalFunctionArgsIn = { goroutineID: this.debugState.currentGoroutine.id, frame: args.frameId }; - this.delve.call('ListFunctionArgs', this.delve.isApiV1 ? [listLocalFunctionArgsIn] : [{ scope: listLocalFunctionArgsIn, cfg: this.delve.loadConfig }], (err, outArgs) => { - if (err) { - logError('Failed to list function args.'); - return this.sendErrorResponse(response, 2006, 'Unable to list args: "{e}"', { e: err.toString() }); - } - const args = this.delve.isApiV1 ? outArgs : outArgs.Args; - verbose('functionArgs', args); - let vars = args.concat(locals); - let scopes = new Array(); - let localVariables = { - name: 'Local', - addr: 0, - type: '', - realType: '', - kind: 0, - value: '', - len: 0, - cap: 0, - children: vars, - unreadable: '' - }; - scopes.push(new vscode_debugadapter_1.Scope('Local', this._variableHandles.create(localVariables), false)); - response.body = { scopes }; - this.sendResponse(response); - verbose('ScopesResponse'); - }); - }); - } - - convertDebugVariableToProtocolVariable(v, i) { - if (v.kind === GoReflectKind.UnsafePointer) { - return { - result: `unsafe.Pointer(0x${v.children[0].addr.toString(16)})`, - variablesReference: 0 - }; - } - else if (v.kind === GoReflectKind.Ptr) { - if (v.children[0].addr === 0) { - return { - result: 'nil <' + v.type + '>', - variablesReference: 0 - }; - } - else if (v.children[0].type === 'void') { - return { - result: 'void', - variablesReference: 0 - }; - } - else { - return { - result: '<' + v.type + '>', - variablesReference: v.children[0].children.length > 0 ? this._variableHandles.create(v.children[0]) : 0 - }; - } - } - else if (v.kind === GoReflectKind.Slice) { - return { - result: '<' + v.type + '> (length: ' + v.len + ', cap: ' + v.cap + ')', - variablesReference: this._variableHandles.create(v) - }; - } - else if (v.kind === GoReflectKind.Array) { - return { - result: '<' + v.type + '>', - variablesReference: this._variableHandles.create(v) - }; - } - else if (v.kind === GoReflectKind.String) { - let val = v.value; - if (v.value && v.value.length < v.len) { - val += `...+${v.len - v.value.length} more`; - } - return { - result: v.unreadable ? ('<' + v.unreadable + '>') : ('"' + val + '"'), - variablesReference: 0 - }; - } - else { - return { - result: this.convertToHex(v.value) || ('<' + v.type + '>'), - variablesReference: v.children.length > 0 ? this._variableHandles.create(v) : 0 - }; - } - } - variablesRequest(response, args) { - verbose('VariablesRequest'); - let vari = this._variableHandles.get(args.variablesReference); - let variables; - if (vari.kind === GoReflectKind.Array || vari.kind === GoReflectKind.Slice) { - variables = vari.children.map((v, i) => { - let { result, variablesReference } = this.convertDebugVariableToProtocolVariable(v, i); - return { - name: '[' + i + ']', - value: result, - variablesReference - }; - }); - } - else if (vari.kind === GoReflectKind.Map) { - variables = []; - for (let i = 0; i < vari.children.length; i += 2) { - if (i + 1 >= vari.children.length) { - break; - } - let mapKey = this.convertDebugVariableToProtocolVariable(vari.children[i], i); - let mapValue = this.convertDebugVariableToProtocolVariable(vari.children[i + 1], i + 1); - variables.push({ - name: mapKey.result, - value: result, - variablesReference: mapValue.variablesReference - }); - } - } - else { - variables = vari.children.map((v, i) => { - let { result, variablesReference } = this.convertDebugVariableToProtocolVariable(v, i); - return { - name: v.name, - value: result, - variablesReference - }; - }); - } - response.body = { variables }; - this.sendResponse(response); - verbose('VariablesResponse', JSON.stringify(variables, null, ' ')); - } - handleReenterDebug(reason) { - if (this.debugState.exited) { - this.sendEvent(new vscode_debugadapter_1.TerminatedEvent()); - verbose('TerminatedEvent'); - } - else { - // [TODO] Can we avoid doing this? https://github.com/Microsoft/vscode/issues/40#issuecomment-161999881 - this.delve.call('ListGoroutines', [], (err, out) => { - if (err) { - logError('Failed to get threads.'); - } - const goroutines = this.delve.isApiV1 ? out : out.Goroutines; - // Assume we need to stop all the threads we saw before... - let needsToBeStopped = new Set(); - this.threads.forEach(id => needsToBeStopped.add(id)); - for (let goroutine of goroutines) { - // ...but delete from list of threads to stop if we still see it - needsToBeStopped.delete(goroutine.id); - if (!this.threads.has(goroutine.id)) { - // Send started event if it's new - this.sendEvent(new vscode_debugadapter_1.ThreadEvent('started', goroutine.id)); - } - this.threads.add(goroutine.id); - } - // Send existed event if it's no longer there - needsToBeStopped.forEach(id => { - this.sendEvent(new vscode_debugadapter_1.ThreadEvent('exited', id)); - this.threads.delete(id); - }); - let stoppedEvent = new vscode_debugadapter_1.StoppedEvent(reason, this.debugState.currentGoroutine.id); - stoppedEvent.body.allThreadsStopped = true; - this.sendEvent(stoppedEvent); - verbose('StoppedEvent("' + reason + '")'); - }); - } - } - continueRequest(response) { - verbose('ContinueRequest'); - this.delve.call('Command', [{ name: 'continue' }], (err, out) => { - if (err) { - logError('Failed to continue.'); - } - const state = this.delve.isApiV1 ? out : out.State; - verbose('continue state', state); - this.debugState = state; - this.handleReenterDebug('breakpoint'); - }); - this.sendResponse(response); - verbose('ContinueResponse'); - } - nextRequest(response) { - verbose('NextRequest'); - this.delve.call('Command', [{ name: 'next' }], (err, out) => { - if (err) { - logError('Failed to next.'); - } - const state = this.delve.isApiV1 ? out : out.State; - verbose('next state', state); - this.debugState = state; - this.handleReenterDebug('step'); - }); - this.sendResponse(response); - verbose('NextResponse'); - } - stepInRequest(response) { - verbose('StepInRequest'); - this.delve.call('Command', [{ name: 'step' }], (err, out) => { - if (err) { - logError('Failed to step.'); - } - const state = this.delve.isApiV1 ? out : out.State; - verbose('stop state', state); - this.debugState = state; - this.handleReenterDebug('step'); - }); - this.sendResponse(response); - verbose('StepInResponse'); - } - stepOutRequest(response) { - verbose('StepOutRequest'); - this.delve.call('Command', [{ name: 'stepOut' }], (err, out) => { - if (err) { - logError('Failed to stepout.'); - } - const state = this.delve.isApiV1 ? out : out.State; - verbose('stepout state', state); - this.debugState = state; - this.handleReenterDebug('step'); - }); - this.sendResponse(response); - verbose('StepOutResponse'); - } - pauseRequest(response) { - verbose('PauseRequest'); - this.delve.call('Command', [{ name: 'halt' }], (err, out) => { - if (err) { - logError('Failed to halt.'); - return this.sendErrorResponse(response, 2010, 'Unable to halt execution: "{e}"', { e: err.toString() }); - } - const state = this.delve.isApiV1 ? out : out.State; - verbose('pause state', state); - this.sendResponse(response); - verbose('PauseResponse'); - }); - } - evaluateRequest(response, args) { - verbose('EvaluateRequest'); - const scope = { - goroutineID: this.debugState.currentGoroutine.id, - frame: args.frameId - }; - let evalSymbolArgs = this.delve.isApiV1 ? { - symbol: args.expression, - scope - } : { - Expr: args.expression, - Scope: scope, - Cfg: this.delve.loadConfig - }; - this.delve.call(this.delve.isApiV1 ? 'EvalSymbol' : 'Eval', [evalSymbolArgs], (err, out) => { - if (err) { - logError('Failed to eval expression: ', JSON.stringify(evalSymbolArgs, null, ' '), '\n\rEval error:', err.toString()); - return this.sendErrorResponse(response, 2009, 'Unable to eval expression: "{e}"', { e: err.toString() }); - } - const variable = this.delve.isApiV1 ? out : out.Variable; - response.body = this.convertDebugVariableToProtocolVariable(variable, 0); - this.sendResponse(response); - verbose('EvaluateResponse'); - }); - } + +interface ListFunctionArgsOut { + Args: DebugVariable[]; +} + +interface EvalOut { + Variable: DebugVariable; +} + +interface DebugVariable { + name: string; + addr: number; + type: string; + realType: string; + kind: GoReflectKind; + value: string; + len: number; + cap: number; + children: DebugVariable[]; + unreadable: string; +} + +interface ListGoroutinesOut { + Goroutines: DebugGoroutine[]; } -function random(low, high) { - return Math.floor(Math.random() * (high - low) + low); + +interface DebugGoroutine { + id: number; + currentLoc: DebugLocation; + userCurrentLoc: DebugLocation; + goStatementLoc: DebugLocation; +} + +interface DebuggerCommand { + name: string; + threadID?: number; + goroutineID?: number; +} + +interface RestartOut { + DiscardedBreakpoints: DiscardedBreakpoint[]; +} + +interface DiscardedBreakpoint { + breakpoint: DebugBreakpoint; + reason: string; +} + +// This interface should always match the schema found in `package.json`. +interface LaunchRequestArguments extends DebugProtocol.LaunchRequestArguments { + program: string; + stopOnEntry?: boolean; + args?: string[]; + showLog?: boolean; + cwd?: string; + env?: { [key: string]: string; }; + mode?: string; + remotePath?: string; + port?: number; + host?: string; + buildFlags?: string; + init?: string; + trace?: boolean | 'verbose'; + /** Optional path to .env file. */ + envFile?: string; + backend?: string; + output?: string; + /** Delve LoadConfig parameters **/ + dlvLoadConfig?: LoadConfig; + /** Delve Version */ + useApiV1: boolean; +} + +process.on('uncaughtException', (err: any) => { + const errMessage = err && (err.stack || err.message); + logger.error(`Unhandled error in debug adapter: ${errMessage}`); + throw err; +}); + +function logArgsToString(args: any[]): string { + return args.map(arg => { + return typeof arg === 'string' ? + arg : + JSON.stringify(arg); + }).join(' '); +} + +function verbose(...args: any[]) { + logger.verbose(logArgsToString(args)); +} + +function log(...args: any[]) { + logger.log(logArgsToString(args)); +} + +function logError(...args: any[]) { + logger.error(logArgsToString(args)); +} + +function normalizePath(filePath: string) { + if (process.platform === 'win32') { + filePath = path.normalize(filePath); + return fixDriveCasingInWindows(filePath); + } + return filePath; +} + +class Delve { + program: string; + remotePath: string; + debugProcess: ChildProcess; + loadConfig: LoadConfig; + connection: Promise; + onstdout: (str: string) => void; + onstderr: (str: string) => void; + onclose: (code: number) => void; + noDebug: boolean; + isApiV1: boolean; + + constructor(remotePath: string, port: number, host: string, program: string, launchArgs: LaunchRequestArguments) { + this.program = normalizePath(program); + this.remotePath = remotePath; + this.isApiV1 = typeof launchArgs.useApiV1 === 'boolean' ? launchArgs.useApiV1 : true; + let mode = launchArgs.mode; + let dlvCwd = dirname(program); + let isProgramDirectory = false; + let launchArgsEnv = launchArgs.env || {}; + this.connection = new Promise((resolve, reject) => { + // Validations on the program + if (!program) { + return reject('The program attribute is missing in the debug configuration in launch.json'); + } + try { + let pstats = lstatSync(program); + if (pstats.isDirectory()) { + if (mode === 'exec') { + logError(`The program "${program}" must not be a directory in exec mode`); + return reject('The program attribute must be an executable in exec mode'); + } + dlvCwd = program; + isProgramDirectory = true; + } else if (mode !== 'exec' && extname(program) !== '.go') { + logError(`The program "${program}" must be a valid go file in debug mode`); + return reject('The program attribute must be a directory or .go file in debug mode'); + } + } catch (e) { + logError(`The program "${program}" does not exist: ${e}`); + return reject('The program attribute must point to valid directory, .go file or executable.'); + } + + // read env from disk and merge into env variables + let fileEnv = {}; + try { + fileEnv = parseEnvFile(launchArgs.envFile); + } catch (e) { + return reject(e); + } + + let env = Object.assign({}, process.env, fileEnv, launchArgsEnv); + + let dirname = isProgramDirectory ? program : path.dirname(program); + if (!env['GOPATH'] && (mode === 'debug' || mode === 'test')) { + // If no GOPATH is set, then infer it from the file/package path + // Not applicable to exec mode in which case `program` need not point to source code under GOPATH + env['GOPATH'] = getInferredGopath(dirname) || env['GOPATH']; + } + + verbose(`Using GOPATH: ${env['GOPATH']}`); + + if (!!launchArgs.noDebug) { + if (mode === 'debug' && !isProgramDirectory) { + this.noDebug = true; + this.debugProcess = spawn(getBinPathWithPreferredGopath('go', []), ['run', program], { env }); + this.debugProcess.stderr.on('data', chunk => { + let str = chunk.toString(); + if (this.onstderr) { this.onstderr(str); } + }); + this.debugProcess.stdout.on('data', chunk => { + let str = chunk.toString(); + if (this.onstdout) { this.onstdout(str); } + }); + this.debugProcess.on('close', (code) => { + logError('Process exiting with code: ' + code); + if (this.onclose) { this.onclose(code); } + }); + this.debugProcess.on('error', function (err) { + reject(err); + }); + resolve(); + return; + } + } + this.noDebug = false; + let serverRunning = false; + + // Get default LoadConfig values according to delve API: + // https://github.com/derekparker/delve/blob/c5c41f635244a22d93771def1c31cf1e0e9a2e63/service/rpc1/server.go#L13 + // https://github.com/derekparker/delve/blob/c5c41f635244a22d93771def1c31cf1e0e9a2e63/service/rpc2/server.go#L423 + this.loadConfig = launchArgs.dlvLoadConfig || { + followPointers: true, + maxVariableRecurse: 1, + maxStringLen: 64, + maxArrayValues: 64, + maxStructFields: -1 + }; + + if (mode === 'remote') { + this.debugProcess = null; + serverRunning = true; // assume server is running when in remote mode + connectClient(port, host); + return; + } + + let dlv = getBinPathWithPreferredGopath('dlv', [resolveHomeDir(env['GOPATH']), process.env['GOPATH']]); + + if (!existsSync(dlv)) { + verbose(`Couldnt find dlv at ${process.env['GOPATH']}${env['GOPATH'] ? ', ' + env['GOPATH'] : ''} or ${envPath}`); + return reject(`Cannot find Delve debugger. Install from https://github.com/derekparker/delve & ensure it is in your "GOPATH/bin" or "PATH".`); + } + + let currentGOWorkspace = getCurrentGoWorkspaceFromGOPATH(env['GOPATH'], dirname); + let dlvArgs = [mode || 'debug']; + if (mode === 'exec') { + dlvArgs = dlvArgs.concat([program]); + } else if (currentGOWorkspace) { + dlvArgs = dlvArgs.concat([dirname.substr(currentGOWorkspace.length + 1)]); + } + dlvArgs = dlvArgs.concat(['--headless=true', '--listen=' + host + ':' + port.toString()]); + if (!this.isApiV1) { + dlvArgs.push('--api-version=2'); + } + + if (launchArgs.showLog) { + dlvArgs = dlvArgs.concat(['--log=' + launchArgs.showLog.toString()]); + } + if (launchArgs.cwd) { + dlvArgs = dlvArgs.concat(['--wd=' + launchArgs.cwd]); + } + if (launchArgs.buildFlags) { + dlvArgs = dlvArgs.concat(['--build-flags=' + launchArgs.buildFlags]); + } + if (launchArgs.init) { + dlvArgs = dlvArgs.concat(['--init=' + launchArgs.init]); + } + if (launchArgs.backend) { + dlvArgs = dlvArgs.concat(['--backend=' + launchArgs.backend]); + } + if (launchArgs.output && mode === 'debug') { + dlvArgs = dlvArgs.concat(['--output=' + launchArgs.output]); + } + if (launchArgs.args) { + dlvArgs = dlvArgs.concat(['--', ...launchArgs.args]); + } + + verbose(`Running: ${dlv} ${dlvArgs.join(' ')}`); + + this.debugProcess = spawn(dlv, dlvArgs, { + cwd: dlvCwd, + env, + }); + + function connectClient(port: number, host: string) { + // Add a slight delay to avoid issues on Linux with + // Delve failing calls made shortly after connection. + setTimeout(() => { + let client = Client.$create(port, host); + client.connectSocket((err, conn) => { + if (err) return reject(err); + return resolve(conn); + }); + }, 200); + } + + this.debugProcess.stderr.on('data', chunk => { + let str = chunk.toString(); + if (this.onstderr) { this.onstderr(str); } + }); + this.debugProcess.stdout.on('data', chunk => { + let str = chunk.toString(); + if (this.onstdout) { this.onstdout(str); } + if (!serverRunning) { + serverRunning = true; + connectClient(port, host); + } + }); + this.debugProcess.on('close', (code) => { + // TODO: Report `dlv` crash to user. + logError('Process exiting with code: ' + code); + if (this.onclose) { this.onclose(code); } + }); + this.debugProcess.on('error', function (err) { + reject(err); + }); + }); + } + + call(command: string, args: any[], callback: (err: Error, results: T) => void) { + this.connection.then(conn => { + conn.call('RPCServer.' + command, args, callback); + }, err => { + callback(err, null); + }); + } + + callPromise(command: string, args: any[]): Thenable { + return new Promise((resolve, reject) => { + this.connection.then(conn => { + conn.call('RPCServer.' + command, args, (err, res) => { + if (err) return reject(err); + resolve(res); + }); + }, err => { + reject(err); + }); + }); + } + + close(): Thenable { + return this.callPromise('Command', [{ name: 'halt' }]).then(out => { + if (!this.debugProcess) { + return this.callPromise('Restart', this.isApiV1 ? [] : [{ position: '', resetArgs: false, newArgs: [] }]).then(null, err => { + if (err) return logError('Failed to restart'); + }); + } + }, err => { + if (!this.debugProcess && err) { + return logError('Failed to halt.'); + } + }).then(() => { + if (this.debugProcess) { + return this.callPromise('Detach', [this.isApiV1 ? true : { Kill: true }]); + } + }); + } } -function killTree(processId) { - if (process.platform === 'win32') { - const TASK_KILL = 'C:\\Windows\\System32\\taskkill.exe'; - // when killing a process in Windows its child processes are *not* killed but become root processes. - // Therefore we use TASKKILL.EXE - try { - child_process_1.execSync(`${TASK_KILL} /F /T /PID ${processId}`); - } - catch (err) { - } - } - else { - // on linux and OS X we kill all direct and indirect child processes as well - try { - const cmd = path.join(__dirname, '../../../scripts/terminateProcess.sh'); - child_process_1.spawnSync(cmd, [processId.toString()]); - } - catch (err) { - } - } + +class GoDebugSession extends DebugSession { + + private _variableHandles: Handles; + private breakpoints: Map; + private threads: Set; + private debugState: DebuggerState; + private delve: Delve; + private localPathSeparator: string; + private remotePathSeparator: string; + + private launchArgs: LaunchRequestArguments; + + public constructor(debuggerLinesStartAt1: boolean, isServer: boolean = false) { + super(debuggerLinesStartAt1, isServer); + this._variableHandles = new Handles(); + this.threads = new Set(); + this.debugState = null; + this.delve = null; + this.breakpoints = new Map(); + + const logPath = path.join(os.tmpdir(), 'vscode-go-debug.txt'); + logger.init(e => this.sendEvent(e), logPath, isServer); + } + + protected initializeRequest(response: DebugProtocol.InitializeResponse, args: DebugProtocol.InitializeRequestArguments): void { + verbose('InitializeRequest'); + // This debug adapter implements the configurationDoneRequest. + response.body.supportsConfigurationDoneRequest = true; + this.sendResponse(response); + verbose('InitializeResponse'); + } + + protected findPathSeperator(path) { + if (/^(\w:[\\/]|\\\\)/.test(path)) return '\\'; + return path.includes('/') ? '/' : '\\'; + } + + protected convertToHex(v) { + let s = v; + if (this.numAsHex === 'hex') { + s = '0x' + parseInt(v).toString(16); + } + else if (this.numAsHex === 'hexdec') { + s = '0x' + parseInt(v).toString(16) + ' (' + v + ')'; + } + return s; + } + + protected launchRequest(response: DebugProtocol.LaunchResponse, args: LaunchRequestArguments): void { + this.launchArgs = args; + const logLevel = args.trace === 'verbose' ? + logger.LogLevel.Verbose : + args.trace ? logger.LogLevel.Log : + logger.LogLevel.Error; + logger.setMinLogLevel(logLevel); + + if (!args.program) { + this.sendErrorResponse(response, 3000, 'Failed to continue: The program attribute is missing in the debug configuration in launch.json'); + return; + } + + // controls numbers display while debugging + // "hex" (shows hex only) "hexdec" ( shows hex (dec) ) + // default: shows dec only + // "DBG_SHOW_NUMBERS_HEX": "hex" + this.numAsHex = args.env['DBG_SHOW_NUMBERS_HEX']; + + // Launch the Delve debugger on the program + let localPath = args.program; + let remotePath = args.remotePath || ''; + let port = args.port || random(2000, 50000); + let host = args.host || '127.0.0.1'; + + if (remotePath.length > 0) { + this.localPathSeparator = this.findPathSeperator(localPath); + this.remotePathSeparator = this.findPathSeperator(remotePath); + + let llist = localPath.split(/\/|\\/).reverse(); + let rlist = remotePath.split(/\/|\\/).reverse(); + let i = 0; + for (; i < llist.length; i++) if (llist[i] !== rlist[i] || llist[i] === 'src') break; + + if (i) { + localPath = llist.reverse().slice(0, -i).join(this.localPathSeparator) + this.localPathSeparator; + remotePath = rlist.reverse().slice(0, -i).join(this.remotePathSeparator) + this.remotePathSeparator; + } else if ((remotePath.endsWith('\\')) || (remotePath.endsWith('/'))) { + remotePath = remotePath.substring(0, remotePath.length - 1); + } + } + + this.delve = new Delve(remotePath, port, host, localPath, args); + this.delve.onstdout = (str: string) => { + this.sendEvent(new OutputEvent(str, 'stdout')); + }; + this.delve.onstderr = (str: string) => { + this.sendEvent(new OutputEvent(str, 'stderr')); + }; + this.delve.onclose = (code) => { + if (code !== 0) { + this.sendErrorResponse(response, 3000, 'Failed to continue: Check the debug console for details.'); + } else { + this.sendEvent(new TerminatedEvent()); + verbose('TerminatedEvent'); + } + verbose('Delve is closed'); + }; + + this.delve.connection.then(() => { + this.delve.call('GetVersion', [], (err, out) => { + if (err) { + logError(err); + return this.sendErrorResponse(response, 2001, 'Failed to get remote server version: "{e}"', { e: err.toString() }); + } + let clientVersion = this.delve.isApiV1 ? 1 : 2; + if (out.APIVersion !== clientVersion) { + logError(`Failed to get version: The remote server is running on delve v${out.APIVersion} API and the client is running v${clientVersion} API`); + return this.sendErrorResponse(response, + 3000, + 'Failed to get version: The remote server is running on delve v{cli} API and the client is running v{ser} API', + { ser: out.APIVersion.toString(), cli: clientVersion }); + } + }); + if (!this.delve.noDebug) { + this.sendEvent(new InitializedEvent()); + verbose('InitializeEvent'); + } + this.sendResponse(response); + }, err => { + this.sendErrorResponse(response, 3000, 'Failed to continue: "{e}"', { e: err.toString() }); + verbose('ContinueResponse'); + }); + } + + protected disconnectRequest(response: DebugProtocol.DisconnectResponse, args: DebugProtocol.DisconnectArguments): void { + verbose('DisconnectRequest'); + this.delve.close().then(() => { + super.disconnectRequest(response, args); + verbose('DisconnectResponse'); + }); + } + + protected configurationDoneRequest(response: DebugProtocol.ConfigurationDoneResponse, args: DebugProtocol.ConfigurationDoneArguments): void { + verbose('ConfigurationDoneRequest'); + + if (this.launchArgs.stopOnEntry) { + this.sendEvent(new StoppedEvent('breakpoint', 0)); + verbose('StoppedEvent("breakpoint")'); + this.sendResponse(response); + } else { + this.continueRequest(response); + } + } + + protected toDebuggerPath(path: string): string { + if (this.delve.remotePath.length === 0) { + return this.convertClientPathToDebugger(path); + } + return path.replace(this.delve.program, this.delve.remotePath).split(this.localPathSeparator).join(this.remotePathSeparator); + } + + protected toLocalPath(pathToConvert: string): string { + if (this.delve.remotePath.length === 0) { + return this.convertDebuggerPathToClient(pathToConvert); + } + + // Fix for https://github.com/Microsoft/vscode-go/issues/1178 + // When the pathToConvert is under GOROOT, replace the remote GOROOT with local GOROOT + if (!pathToConvert.startsWith(this.delve.remotePath)) { + let index = pathToConvert.indexOf(`${this.remotePathSeparator}src${this.remotePathSeparator}`); + let goroot = process.env['GOROOT']; + if (goroot && index > 0) { + return path.join(goroot, pathToConvert.substr(index)); + } + } + return pathToConvert.replace(this.delve.remotePath, this.delve.program).split(this.remotePathSeparator).join(this.localPathSeparator); + } + + protected setBreakPointsRequest(response: DebugProtocol.SetBreakpointsResponse, args: DebugProtocol.SetBreakpointsArguments): void { + verbose('SetBreakPointsRequest'); + let file = normalizePath(args.source.path); + if (!this.breakpoints.get(file)) { + this.breakpoints.set(file, []); + } + let remoteFile = this.toDebuggerPath(file); + + Promise.all(this.breakpoints.get(file).map(existingBP => { + verbose('Clearing: ' + existingBP.id); + return this.delve.callPromise('ClearBreakpoint', [this.delve.isApiV1 ? existingBP.id : { Id: existingBP.id }]); + })).then(() => { + verbose('All cleared'); + return Promise.all(args.breakpoints.map(breakpoint => { + if (this.delve.remotePath.length === 0) { + verbose('Creating on: ' + file + ':' + breakpoint.line); + } else { + verbose('Creating on: ' + file + ' (' + remoteFile + ') :' + breakpoint.line); + } + let breakpointIn = {}; + breakpointIn.file = remoteFile; + breakpointIn.line = breakpoint.line; + breakpointIn.loadArgs = this.delve.loadConfig; + breakpointIn.loadLocals = this.delve.loadConfig; + breakpointIn.cond = breakpoint.condition; + return this.delve.callPromise('CreateBreakpoint', [this.delve.isApiV1 ? breakpointIn : { Breakpoint: breakpointIn }]).then(null, err => { + verbose('Error on CreateBreakpoint: ' + err.toString()); + return null; + }); + })); + }).then(newBreakpoints => { + if (!this.delve.isApiV1) { + // Unwrap breakpoints from v2 apicall + newBreakpoints = newBreakpoints.map((bp, i) => { + return bp ? bp.Breakpoint : null; + }); + } + verbose('All set:' + JSON.stringify(newBreakpoints)); + let breakpoints = newBreakpoints.map((bp, i) => { + if (bp) { + return { verified: true, line: bp.line }; + } else { + return { verified: false, line: args.lines[i] }; + } + }); + this.breakpoints.set(file, newBreakpoints.filter(x => !!x)); + return breakpoints; + }).then(breakpoints => { + response.body = { breakpoints }; + this.sendResponse(response); + verbose('SetBreakPointsResponse'); + }, err => { + this.sendErrorResponse(response, 2002, 'Failed to set breakpoint: "{e}"', { e: err.toString() }); + logError(err); + }); + } + + protected threadsRequest(response: DebugProtocol.ThreadsResponse): void { + verbose('ThreadsRequest'); + this.delve.call('ListGoroutines', [], (err, out) => { + if (this.debugState.exited) { + // If the program exits very quickly, the initial threadsRequest will complete after it has exited. + // A TerminatedEvent has already been sent. Ignore the err returned in this case. + response.body = { threads: [] }; + return this.sendResponse(response); + } + + if (err) { + logError('Failed to get threads.'); + return this.sendErrorResponse(response, 2003, 'Unable to display threads: "{e}"', { e: err.toString() }); + } + const goroutines = this.delve.isApiV1 ? out : (out).Goroutines; + verbose('goroutines', goroutines); + let threads = goroutines.map(goroutine => + new Thread( + goroutine.id, + goroutine.userCurrentLoc.function ? goroutine.userCurrentLoc.function.name : (goroutine.userCurrentLoc.file + '@' + goroutine.userCurrentLoc.line) + ) + ); + response.body = { threads }; + this.sendResponse(response); + verbose('ThreadsResponse', threads); + }); + } + + protected stackTraceRequest(response: DebugProtocol.StackTraceResponse, args: DebugProtocol.StackTraceArguments): void { + verbose('StackTraceRequest'); + let stackTraceIn = { id: args.threadId, depth: args.levels }; + if (!this.delve.isApiV1) { + Object.assign(stackTraceIn, { full: false, cfg: this.delve.loadConfig }); + } + this.delve.call(this.delve.isApiV1 ? 'StacktraceGoroutine' : 'Stacktrace', [stackTraceIn], (err, out) => { + if (err) { + logError('Failed to produce stack trace!'); + return this.sendErrorResponse(response, 2004, 'Unable to produce stack trace: "{e}"', { e: err.toString() }); + } + const locations = this.delve.isApiV1 ? out : (out).Locations; + verbose('locations', locations); + let stackFrames = locations.map((location, i) => + new StackFrame( + i, + location.function ? location.function.name : '', + new Source( + basename(location.file), + this.toLocalPath(location.file) + ), + location.line, + 0 + ) + ); + response.body = { stackFrames }; + this.sendResponse(response); + verbose('StackTraceResponse'); + }); + } + + protected scopesRequest(response: DebugProtocol.ScopesResponse, args: DebugProtocol.ScopesArguments): void { + verbose('ScopesRequest'); + const listLocalVarsIn = { goroutineID: this.debugState.currentGoroutine.id, frame: args.frameId }; + this.delve.call('ListLocalVars', this.delve.isApiV1 ? [listLocalVarsIn] : [{ scope: listLocalVarsIn, cfg: this.delve.loadConfig }], (err, out) => { + if (err) { + logError('Failed to list local variables.'); + return this.sendErrorResponse(response, 2005, 'Unable to list locals: "{e}"', { e: err.toString() }); + } + const locals = this.delve.isApiV1 ? out : (out).Variables; + verbose('locals', locals); + let listLocalFunctionArgsIn = { goroutineID: this.debugState.currentGoroutine.id, frame: args.frameId }; + this.delve.call('ListFunctionArgs', this.delve.isApiV1 ? [listLocalFunctionArgsIn] : [{ scope: listLocalFunctionArgsIn, cfg: this.delve.loadConfig }], (err, outArgs) => { + if (err) { + logError('Failed to list function args.'); + return this.sendErrorResponse(response, 2006, 'Unable to list args: "{e}"', { e: err.toString() }); + } + const args = this.delve.isApiV1 ? outArgs : (outArgs).Args; + verbose('functionArgs', args); + let vars = args.concat(locals); + + let scopes = new Array(); + let localVariables = { + name: 'Local', + addr: 0, + type: '', + realType: '', + kind: 0, + value: '', + len: 0, + cap: 0, + children: vars, + unreadable: '' + }; + scopes.push(new Scope('Local', this._variableHandles.create(localVariables), false)); + response.body = { scopes }; + this.sendResponse(response); + verbose('ScopesResponse'); + }); + }); + } + + private convertDebugVariableToProtocolVariable(v: DebugVariable, i: number): { result: string; variablesReference: number; } { + if (v.kind === GoReflectKind.UnsafePointer) { + return { + result: `unsafe.Pointer(0x${v.children[0].addr.toString(16)})`, + variablesReference: 0 + }; + } else if (v.kind === GoReflectKind.Ptr) { + if (v.children[0].addr === 0) { + return { + result: 'nil <' + v.type + '>', + variablesReference: 0 + }; + } else if (v.children[0].type === 'void') { + return { + result: 'void', + variablesReference: 0 + }; + } else { + return { + result: '<' + v.type + '>', + variablesReference: v.children[0].children.length > 0 ? this._variableHandles.create(v.children[0]) : 0 + }; + } + } else if (v.kind === GoReflectKind.Slice) { + return { + result: '<' + v.type + '> (length: ' + v.len + ', cap: ' + v.cap + ')', + variablesReference: this._variableHandles.create(v) + }; + } else if (v.kind === GoReflectKind.Array) { + return { + result: '<' + v.type + '>', + variablesReference: this._variableHandles.create(v) + }; + } else if (v.kind === GoReflectKind.String) { + let val = v.value; + let byteLength = Buffer.byteLength(val || ''); + if (v.value && byteLength < v.len) { + val += `...+${v.len - byteLength} more`; + } + return { + result: v.unreadable ? ('<' + v.unreadable + '>') : ('"' + val + '"'), + variablesReference: 0 + }; + } else { + return { + result: this.convertToHex(v.value) || ('<' + v.type + '>'), + variablesReference: v.children.length > 0 ? this._variableHandles.create(v) : 0 + }; + } + } + + protected variablesRequest(response: DebugProtocol.VariablesResponse, args: DebugProtocol.VariablesArguments): void { + verbose('VariablesRequest'); + let vari = this._variableHandles.get(args.variablesReference); + let variables; + if (vari.kind === GoReflectKind.Array || vari.kind === GoReflectKind.Slice) { + variables = vari.children.map((v, i) => { + let { result, variablesReference } = this.convertDebugVariableToProtocolVariable(v, i); + return { + name: '[' + i + ']', + value: result, + variablesReference + }; + }); + } else if (vari.kind === GoReflectKind.Map) { + variables = []; + for (let i = 0; i < vari.children.length; i += 2) { + if (i + 1 >= vari.children.length) { + break; + } + let mapKey = this.convertDebugVariableToProtocolVariable(vari.children[i], i); + let mapValue = this.convertDebugVariableToProtocolVariable(vari.children[i + 1], i + 1); + variables.push({ + name: mapKey.result, + value: mapValue.result, + variablesReference: mapValue.variablesReference + }); + } + } else { + variables = vari.children.map((v, i) => { + let { result, variablesReference } = this.convertDebugVariableToProtocolVariable(v, i); + return { + name: v.name, + value: result, + variablesReference + }; + }); + } + response.body = { variables }; + this.sendResponse(response); + verbose('VariablesResponse', JSON.stringify(variables, null, ' ')); + } + + private handleReenterDebug(reason: string): void { + if (this.debugState.exited) { + this.sendEvent(new TerminatedEvent()); + verbose('TerminatedEvent'); + } else { + // [TODO] Can we avoid doing this? https://github.com/Microsoft/vscode/issues/40#issuecomment-161999881 + this.delve.call('ListGoroutines', [], (err, out) => { + if (err) { + logError('Failed to get threads.'); + } + const goroutines = this.delve.isApiV1 ? out : (out).Goroutines; + // Assume we need to stop all the threads we saw before... + let needsToBeStopped = new Set(); + this.threads.forEach(id => needsToBeStopped.add(id)); + for (let goroutine of goroutines) { + // ...but delete from list of threads to stop if we still see it + needsToBeStopped.delete(goroutine.id); + if (!this.threads.has(goroutine.id)) { + // Send started event if it's new + this.sendEvent(new ThreadEvent('started', goroutine.id)); + } + this.threads.add(goroutine.id); + } + // Send existed event if it's no longer there + needsToBeStopped.forEach(id => { + this.sendEvent(new ThreadEvent('exited', id)); + this.threads.delete(id); + }); + + let stoppedEvent = new StoppedEvent(reason, this.debugState.currentGoroutine.id); + (stoppedEvent.body).allThreadsStopped = true; + this.sendEvent(stoppedEvent); + verbose('StoppedEvent("' + reason + '")'); + }); + } + } + + protected continueRequest(response: DebugProtocol.ContinueResponse): void { + verbose('ContinueRequest'); + this.delve.call('Command', [{ name: 'continue' }], (err, out) => { + if (err) { + logError('Failed to continue.'); + } + const state = this.delve.isApiV1 ? out : (out).State; + verbose('continue state', state); + this.debugState = state; + this.handleReenterDebug('breakpoint'); + }); + this.sendResponse(response); + verbose('ContinueResponse'); + } + + protected nextRequest(response: DebugProtocol.NextResponse): void { + verbose('NextRequest'); + this.delve.call('Command', [{ name: 'next' }], (err, out) => { + if (err) { + logError('Failed to next.'); + } + const state = this.delve.isApiV1 ? out : (out).State; + verbose('next state', state); + this.debugState = state; + this.handleReenterDebug('step'); + }); + this.sendResponse(response); + verbose('NextResponse'); + } + + protected stepInRequest(response: DebugProtocol.StepInResponse): void { + verbose('StepInRequest'); + this.delve.call('Command', [{ name: 'step' }], (err, out) => { + if (err) { + logError('Failed to step.'); + } + const state = this.delve.isApiV1 ? out : (out).State; + verbose('stop state', state); + this.debugState = state; + this.handleReenterDebug('step'); + }); + this.sendResponse(response); + verbose('StepInResponse'); + } + + protected stepOutRequest(response: DebugProtocol.StepOutResponse): void { + verbose('StepOutRequest'); + this.delve.call('Command', [{ name: 'stepOut' }], (err, out) => { + if (err) { + logError('Failed to stepout.'); + } + const state = this.delve.isApiV1 ? out : (out).State; + verbose('stepout state', state); + this.debugState = state; + this.handleReenterDebug('step'); + }); + this.sendResponse(response); + verbose('StepOutResponse'); + } + + protected pauseRequest(response: DebugProtocol.PauseResponse): void { + verbose('PauseRequest'); + this.delve.call('Command', [{ name: 'halt' }], (err, out) => { + if (err) { + logError('Failed to halt.'); + return this.sendErrorResponse(response, 2010, 'Unable to halt execution: "{e}"', { e: err.toString() }); + } + const state = this.delve.isApiV1 ? out : (out).State; + verbose('pause state', state); + this.sendResponse(response); + verbose('PauseResponse'); + }); + } + + protected evaluateRequest(response: DebugProtocol.EvaluateResponse, args: DebugProtocol.EvaluateArguments): void { + verbose('EvaluateRequest'); + const scope = { + goroutineID: this.debugState.currentGoroutine.id, + frame: args.frameId + }; + let evalSymbolArgs = this.delve.isApiV1 ? { + symbol: args.expression, + scope + } : { + Expr: args.expression, + Scope: scope, + Cfg: this.delve.loadConfig + }; + this.delve.call(this.delve.isApiV1 ? 'EvalSymbol' : 'Eval', [evalSymbolArgs], (err, out) => { + if (err) { + logError('Failed to eval expression: ', JSON.stringify(evalSymbolArgs, null, ' '), '\n\rEval error:', err.toString()); + return this.sendErrorResponse(response, 2009, 'Unable to eval expression: "{e}"', { e: err.toString() }); + } + const variable = this.delve.isApiV1 ? out : (out).Variable; + response.body = this.convertDebugVariableToProtocolVariable(variable, 0); + this.sendResponse(response); + verbose('EvaluateResponse'); + }); + } } -vscode_debugadapter_1.DebugSession.run(GoDebugSession); +function random(low: number, high: number): number { + return Math.floor(Math.random() * (high - low) + low); +} From 0ad9cac66e857dd183826623f04f7945fcc70b51 Mon Sep 17 00:00:00 2001 From: Valerio Lupi Date: Mon, 23 Jul 2018 21:20:07 +0200 Subject: [PATCH 07/15] forgot to declare member --- src/debugAdapter/goDebug.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/debugAdapter/goDebug.ts b/src/debugAdapter/goDebug.ts index 0e97e7675..370db6fad 100644 --- a/src/debugAdapter/goDebug.ts +++ b/src/debugAdapter/goDebug.ts @@ -480,7 +480,7 @@ class GoDebugSession extends DebugSession { private delve: Delve; private localPathSeparator: string; private remotePathSeparator: string; - + private numAsHex: string; private launchArgs: LaunchRequestArguments; public constructor(debuggerLinesStartAt1: boolean, isServer: boolean = false) { From badfcdd626cd1a305528285c6106d2b6bd3e1962 Mon Sep 17 00:00:00 2001 From: Valerio Lupi Date: Mon, 23 Jul 2018 21:28:16 +0200 Subject: [PATCH 08/15] fixed indentation --- src/debugAdapter/goDebug.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/debugAdapter/goDebug.ts b/src/debugAdapter/goDebug.ts index 370db6fad..63b155b4b 100644 --- a/src/debugAdapter/goDebug.ts +++ b/src/debugAdapter/goDebug.ts @@ -507,8 +507,8 @@ class GoDebugSession extends DebugSession { if (/^(\w:[\\/]|\\\\)/.test(path)) return '\\'; return path.includes('/') ? '/' : '\\'; } - - protected convertToHex(v) { + + protected convertToHex(v) { let s = v; if (this.numAsHex === 'hex') { s = '0x' + parseInt(v).toString(16); @@ -518,7 +518,7 @@ class GoDebugSession extends DebugSession { } return s; } - + protected launchRequest(response: DebugProtocol.LaunchResponse, args: LaunchRequestArguments): void { this.launchArgs = args; const logLevel = args.trace === 'verbose' ? @@ -531,7 +531,7 @@ class GoDebugSession extends DebugSession { this.sendErrorResponse(response, 3000, 'Failed to continue: The program attribute is missing in the debug configuration in launch.json'); return; } - + // controls numbers display while debugging // "hex" (shows hex only) "hexdec" ( shows hex (dec) ) // default: shows dec only @@ -850,7 +850,7 @@ class GoDebugSession extends DebugSession { }; } else { return { - result: this.convertToHex(v.value) || ('<' + v.type + '>'), + result: this.convertToHex(v.value) || ('<' + v.type + '>'), variablesReference: v.children.length > 0 ? this._variableHandles.create(v) : 0 }; } From 66e43c727048b71a2265eefdadd1a431a07542b8 Mon Sep 17 00:00:00 2001 From: Valerio Lupi Date: Mon, 23 Jul 2018 21:33:52 +0200 Subject: [PATCH 09/15] fixed for linter --- src/debugAdapter/goDebug.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/debugAdapter/goDebug.ts b/src/debugAdapter/goDebug.ts index 63b155b4b..15455946e 100644 --- a/src/debugAdapter/goDebug.ts +++ b/src/debugAdapter/goDebug.ts @@ -507,7 +507,6 @@ class GoDebugSession extends DebugSession { if (/^(\w:[\\/]|\\\\)/.test(path)) return '\\'; return path.includes('/') ? '/' : '\\'; } - protected convertToHex(v) { let s = v; if (this.numAsHex === 'hex') { From 83c54b774129a98cf78e88de00ddcb908e7970f2 Mon Sep 17 00:00:00 2001 From: Valerio Lupi Date: Tue, 24 Jul 2018 23:57:44 +0200 Subject: [PATCH 10/15] debugger wasn't starting after last fixes --- src/debugAdapter/goDebug.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/debugAdapter/goDebug.ts b/src/debugAdapter/goDebug.ts index 15455946e..661d8844d 100644 --- a/src/debugAdapter/goDebug.ts +++ b/src/debugAdapter/goDebug.ts @@ -1038,3 +1038,5 @@ class GoDebugSession extends DebugSession { function random(low: number, high: number): number { return Math.floor(Math.random() * (high - low) + low); } + +DebugSession.run(GoDebugSession); From e8b84ea6b3674de2a4f269481043332428eba0bd Mon Sep 17 00:00:00 2001 From: Valerio Lupi Date: Mon, 30 Jul 2018 21:08:19 +0200 Subject: [PATCH 11/15] updated --- Go-latest.vsix | Bin 6186901 -> 0 bytes package-lock.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 Go-latest.vsix diff --git a/Go-latest.vsix b/Go-latest.vsix deleted file mode 100644 index c92e753b18a43f9ebdd4fe132b7a76c9e9f03e2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6186901 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�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 z

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