{ "name": "cbl-gdb", "displayName": "GDB Debugging support for GnuCOBOL", "description": "GDB Debugging support for GnuCOBOL", "keywords": [ "gdb", "COBOL", "debug" ], "version": "1.1.0", "publisher": "CamelianSystems", "icon": "images/CamelianCobol.png", "engines": { "vscode": "^1.28.0" }, "main": "./out/src/frontend/extension", "activationEvents": [ "onCommand:code-debug.examineMemoryLocation", "onCommand:code-debug.getFileNameNoExt", "onCommand:code-debug.getFileBasenameNoExt" ], "categories": [ "Debuggers" ], "repository": { "type": "git", "url": "https://NoRepositoryAsYet.git" }, "contributes": { "commands": [ { "command": "code-debug.examineMemoryLocation", "title": "Code-Debug: Examine memory location" } ], "debuggers": [ { "type": "cbl-gdb", "program": "./out/src/gdb.js", "runtime": "node", "label": "GDB", "variables": { "FileBasenameNoExt": "code-debug.getFileBasenameNoExt", "FileNameNoExt": "code-debug.getFileNameNoExt" }, "configurationAttributes": { "launch": { "required": [ "program" ], "properties": { "program": { "type": "string", "description": "Path of executable" }, "arguments": { "type": "string", "description": "Arguments to append after the executable. You can also use pipes." }, "terminal": { "type": "string", "description": "Leave this field undefined to keep program output in the vscode console at the bottom. If this is set to empty string the program will spawn in a new console using x-terminal-emulator on linux, otherwise with the specified terminal. On windows setting this to an empty string spawns the program in a console, but no other console is supported." }, "cwd": { "type": "string", "description": "Path of project" }, "gdbpath": { "type": "string", "description": "Path to the gdb executable or the command if in PATH", "default": "gdb" }, "env": { "type": "object", "description": "Environment overriding the gdb (and in turn also the process) environment", "default": null }, "debugger_args": { "type": "array", "description": "Additional arguments to pass to GDB", "default": [] }, "valuesFormatting": { "type": "string", "description": "Set the way of showing variable values. 'disabled' - show value as is, 'parseText' - parse debuggers output text into structure, 'prettyPrinters' - enable debuggers custom pretty-printers if there are any", "default": "parseText", "enum": [ "disabled", "parseText", "prettyPrinters" ] }, "printCalls": { "type": "boolean", "description": "Prints all GDB calls to the console", "default": false }, "showDevDebugOutput": { "type": "boolean", "description": "Prints all GDB responses to the console", "default": false }, "autorun": { "type": "array", "description": "GDB commands to run when starting to debug", "default": [] }, "ssh": { "required": [ "host", "cwd", "user" ], "type": "object", "description": "If this is set then the extension will connect to an ssh host and run GDB there", "properties": { "host": { "type": "string", "description": "Remote host name/ip to connect to" }, "cwd": { "type": "string", "description": "Path of project on the remote" }, "port": { "type": "number", "description": "Remote port number", "default": 22 }, "user": { "type": "string", "description": "Username to connect as" }, "password": { "type": "string", "description": "Plain text password (unsafe; if possible use keyfile instead)" }, "keyfile": { "type": "string", "description": "Absolute path to private key" }, "useAgent": { "type": "boolean", "description": "Auto-detect the running SSH agent (via SSH_AUTH_SOCK environment variable) and use it to perform authentication", "default": false }, "forwardX11": { "type": "boolean", "description": "If true, the server will redirect x11 to the local host", "default": true }, "x11port": { "type": "number", "description": "Port to redirect X11 data to (by default port = display + 6000)", "default": 6000 }, "x11host": { "type": "string", "description": "Hostname/ip to redirect X11 data to", "default": "localhost" }, "remotex11screen": { "type": "number", "description": "Screen to start the application on the remote side", "default": 0 }, "bootstrap": { "type": "string", "description": "Content will be executed on the SSH host before the debugger call." } } } } }, "attach": { "properties": { "process_id": { "type": "string", "description": "PID of running program or program name or connection arguments (eg :2345) if remote is true" }, "ixscript": { "type": "string", "description": "Script to be executed by the GDB -ix switch" }, "primdebug": { "type": "string", "description": "Path to file/fifo containing 'PID appname' information" }, "solibs":{ "type": "string", "description": "Value for solib-search-path" }, "remote": { "type": "boolean", "description": "If true this will connect to a gdbserver instead of attaching to a PID", "default": false }, "valuesFormatting": { "type": "string", "description": "Set the way of showing variable values. 'disabled' - show value as is, 'parseText' - parse debuggers output text into structure, 'prettyPrinters' - enable debuggers custom pretty-printers if there are any", "default": "parseText", "enum": [ "disabled", "parseText", "prettyPrinters" ] }, "printCalls": { "type": "boolean", "description": "Prints all GDB calls to the console", "default": false }, "showDevDebugOutput": { "type": "boolean", "description": "Prints all GDB responses to the console", "default": false }, "executable": { "type": "string", "description": "Path of executable for debugging symbols" }, "gdbpath": { "type": "string", "description": "Path to the gdb executable or the command if in PATH", "default": "gdb" }, "env": { "type": "object", "description": "Environment overriding the gdb (and in turn also the process) environment", "default": null }, "debugger_args": { "type": "array", "description": "Additional arguments to pass to GDB", "default": [] }, "cwd": { "type": "string", "description": "Path of project", "default": "${workspaceRoot}" }, "autorun": { "type": "array", "description": "GDB commands to run when starting to debug", "default": [] }, "ssh": { "required": [ "host", "cwd", "user" ], "type": "object", "description": "If this is set then the extension will connect to an ssh host and run GDB there", "properties": { "host": { "type": "string", "description": "Remote host name/ip to connect to" }, "cwd": { "type": "string", "description": "Path of project on the remote" }, "port": { "type": "number", "description": "Remote port number", "default": 22 }, "user": { "type": "string", "description": "Username to connect as" }, "password": { "type": "string", "description": "Plain text password (unsafe; if possible use keyfile instead)" }, "keyfile": { "type": "string", "description": "Absolute path to private key" }, "useAgent": { "type": "boolean", "description": "Auto-detect the running SSH agent (via SSH_AUTH_SOCK environment variable) and use it to perform authentication", "default": false }, "forwardX11": { "type": "boolean", "description": "If true, the server will redirect x11 to the local host", "default": true }, "x11port": { "type": "number", "description": "Port to redirect X11 data to (by default port = display + 6000)", "default": 6000 }, "x11host": { "type": "string", "description": "Hostname/ip to redirect X11 data to", "default": "localhost" }, "remotex11screen": { "type": "number", "description": "Screen to start the application on the remote side", "default": 0 }, "bootstrap": { "type": "string", "description": "Content will be executed on the SSH host before the debugger call." } } } } } }, "initialConfigurations": [ { "name": "Debug", "type": "gdb", "request": "launch", "target": "./bin/executable", "cwd": "${workspaceRoot}", "valuesFormatting": "parseText" } ], "configurationSnippets": [ { "label": "GDB: Launch Program", "description": "Starts the program using gdb", "body": { "type": "gdb", "request": "launch", "name": "${2:Launch Program}", "target": "${1:./bin/executable}", "cwd": "^\"\\${workspaceRoot}\"", "valuesFormatting": "parseText" } }, { "label": "GDB: Attach to PID", "description": "Attaches to a running program pid using gdb", "body": { "type": "gdb", "request": "attach", "name": "${2:Attach to PID}", "target": "${1:[PID]}", "cwd": "^\"\\${workspaceRoot}\"", "valuesFormatting": "parseText" } }, { "label": "GDB: Connect to gdbserver", "description": "Connects to a gdbserver for debugging", "body": { "type": "gdb", "request": "attach", "name": "${3:Attach to gdbserver}", "executable": "${1:./bin/executable}", "target": ":${2:2345}", "remote": true, "cwd": "^\"\\${workspaceRoot}\"", "valuesFormatting": "parseText" } }, { "label": "GDB: Launch over SSH", "description": "Remotely starts the program using gdb", "body": { "type": "gdb", "request": "launch", "name": "${6:Launch Program (SSH)}", "target": "${1:./bin/executable}", "cwd": "^\"\\${workspaceRoot}\"", "ssh": { "host": "${2:127.0.0.1}", "cwd": "${3:/home/remote_user/project/}", "keyfile": "${4:/home/my_user/.ssh/id_rsa}", "user": "${5:remote_user}" }, "valuesFormatting": "parseText" } }, { "label": "GDB: Launch GUI over SSH with X11 forwarding", "description": "Remotely starts the program using gdb with X11 forwarding", "body": { "type": "gdb", "request": "launch", "name": "${6:Launch Program (SSH + X11)}", "target": "${1:./bin/executable}", "cwd": "^\"\\${workspaceRoot}\"", "ssh": { "host": "${2:127.0.0.1}", "cwd": "${3:/home/remote_user/project/}", "keyfile": "${4:/home/my_user/.ssh/id_rsa}", "user": "${5:remote_user}", "forwardX11": true, "x11host": "localhost", "x11port": 6000 }, "valuesFormatting": "parseText" } }, { "label": "GDB: Debug external embedded device", "description": "Debugs an embedded microcontroller supported by GDB by attaching over extended-remote", "body": { "type": "gdb", "request": "attach", "name": "${6:Debug Microcontroller}", "target": "extended-remote ${2:/dev/cu.usbmodem00000000}", "executable": "${1:./bin/executable.elf}", "cwd": "^\"\\${workspaceRoot}\"", "autorun": [ "monitor tpwr enable", "monitor swdp_scan", "attach 1", "load ${1:./bin/executable.elf}" ] }, "valuesFormatting": "parseText" } ] } ] }, "scripts": { "vscode:prepublish": "tsc -p ./", "compile": "tsc -watch -p ./", "postinstall": "node ./node_modules/vscode/bin/install" }, "dependencies": { "vscode-debugadapter": "^1.16.0", "vscode-debugprotocol": "^1.16.0", "ssh2": "^0.8.2" }, "devDependencies": { "@types/mocha": "^5.2.6", "@types/node": "^11.11.3", "mocha": "^6.0.2", "tslint": "^5.14.0", "tslint-language-service": "^0.9.9", "typescript": "^3.3.3333", "vscode": "^1.1.30" }, "__metadata": { "id": "224226f9-3050-4841-9828-34fea500bb86", "publisherDisplayName": "Camelian Systems", "publisherId": "6a5fb5e1-a1e4-4f5c-9c45-a1c59d5a2b7f" } }