1{ 2 "name": "lldb-vscode", 3 "displayName": "LLDB native Debug stub", 4 "version": "0.1.0", 5 "publisher": "llvm", 6 "repository": "llvm.org", 7 "description": "Debug adapter for LLDB which uses a C++ tool to interface directly with LLDB.", 8 "author": { 9 "name": "Greg Clayton", 10 "email": "clayborg@gmail.com" 11 }, 12 "license": "LLVM", 13 "keywords": [ 14 "multi-root ready" 15 ], 16 "engines": { 17 "vscode": "^1.18.0", 18 "node": "^7.9.0" 19 }, 20 "categories": [ 21 "Debuggers" 22 ], 23 "private": true, 24 "devDependencies": { 25 "@types/node": "7.0.43", 26 "@types/mocha": "2.2.45", 27 "typescript": "2.6.2", 28 "mocha": "4.0.1", 29 "vscode": "1.1.10", 30 "vscode-debugadapter-testsupport": "1.25.0", 31 "tslint": "5.8.0", 32 "vsce": "^1.36.3" 33 }, 34 "contributes": { 35 "languages": [ 36 { 37 "id": "lldb.disassembly", 38 "aliases": [ 39 "Disassembly" 40 ], 41 "extensions": [ 42 ".disasm" 43 ] 44 } 45 ], 46 "grammars": [ 47 { 48 "language": "lldb.disassembly", 49 "scopeName": "source.disassembly", 50 "path": "./syntaxes/disassembly.json" 51 } 52 ], 53 "debuggers": [ 54 { 55 "type": "lldb-vscode", 56 "label": "Native LLDB Debugger", 57 "enableBreakpointsFor": { 58 "languageIds": [ 59 "ada", 60 "arm", 61 "asm", 62 "c", 63 "cpp", 64 "crystal", 65 "d", 66 "fortan", 67 "fortran-modern", 68 "nim", 69 "objective-c", 70 "objectpascal", 71 "pascal", 72 "rust", 73 "swift" 74 ] 75 }, 76 "program": "./bin/lldb-vscode", 77 "windows": { 78 "program": "./bin/lldb-vscode.exe" 79 }, 80 "configurationAttributes": { 81 "launch": { 82 "required": [ 83 "program" 84 ], 85 "properties": { 86 "program": { 87 "type": "string", 88 "description": "Path to the program to debug." 89 }, 90 "args": { 91 "type": [ 92 "array", 93 "string" 94 ], 95 "description": "Program arguments.", 96 "default": [] 97 }, 98 "cwd": { 99 "type": "string", 100 "description": "Program working directory.", 101 "default": "${workspaceRoot}" 102 }, 103 "env": { 104 "type": "array", 105 "description": "Additional environment variables.", 106 "default": [] 107 }, 108 "stopOnEntry": { 109 "type": "boolean", 110 "description": "Automatically stop after launch.", 111 "default": false 112 }, 113 "disableASLR": { 114 "type": "boolean", 115 "description": "Enable or disable Address space layout randomization if the debugger supports it.", 116 "default": true 117 }, 118 "disableSTDIO": { 119 "type": "boolean", 120 "description": "Don't retrieve STDIN, STDOUT and STDERR as the program is running.", 121 "default": false 122 }, 123 "shellExpandArguments": { 124 "type": "boolean", 125 "description": "Expand program arguments as a shell would without actually launching the program in a shell.", 126 "default": false 127 }, 128 "detachOnError": { 129 "type": "boolean", 130 "description": "Detach from the program.", 131 "default": false 132 }, 133 "sourcePath": { 134 "type": "string", 135 "description": "Specify a source path to remap \"./\" to allow full paths to be used when setting breakpoints in binaries that have relative source paths." 136 }, 137 "sourceMap": { 138 "type": "array", 139 "description": "Specify an array of path remappings; each element must itself be a two element array containing a source and destination pathname. Overrides sourcePath.", 140 "default": [] 141 }, 142 "debuggerRoot": { 143 "type": "string", 144 "description": "Specify a working directory to set the debug adaptor to so relative object files can be located." 145 }, 146 "targetTriple": { 147 "type": "string", 148 "description": "Triplet of the target architecture to override value derived from the program file." 149 }, 150 "platformName": { 151 "type": "string", 152 "description": "Name of the execution platform to override value derived from the program file." 153 }, 154 "initCommands": { 155 "type": "array", 156 "description": "Initialization commands executed upon debugger startup.", 157 "default": [] 158 }, 159 "preRunCommands": { 160 "type": "array", 161 "description": "Commands executed just before the program is launched.", 162 "default": [] 163 }, 164 "launchCommands": { 165 "type": "array", 166 "description": "Custom commands that are executed instead of launching a process. A target will be created with the launch arguments prior to executing these commands. The commands may optionally create a new target and must perform a launch. A valid process must exist after these commands complete or the \"launch\" will fail.", 167 "default": [] 168 }, 169 "stopCommands": { 170 "type": "array", 171 "description": "Commands executed each time the program stops.", 172 "default": [] 173 }, 174 "exitCommands": { 175 "type": "array", 176 "description": "Commands executed at the end of debugging session.", 177 "default": [] 178 }, 179 "runInTerminal": { 180 "type": "boolean", 181 "description": "Launch the program inside an integrated terminal in the IDE. Useful for debugging interactive command line programs", 182 "default": false 183 } 184 } 185 }, 186 "attach": { 187 "properties": { 188 "program": { 189 "type": "string", 190 "description": "Path to the program to attach to." 191 }, 192 "pid": { 193 "type": [ 194 "number", 195 "string" 196 ], 197 "description": "System process ID to attach to." 198 }, 199 "waitFor": { 200 "type": "boolean", 201 "description": "If set to true, then wait for the process to launch by looking for a process with a basename that matches `program`. No process ID needs to be specified when using this flag.", 202 "default": true 203 }, 204 "sourcePath": { 205 "type": "string", 206 "description": "Specify a source path to remap \"./\" to allow full paths to be used when setting breakpoints in binaries that have relative source paths." 207 }, 208 "sourceMap": { 209 "type": "array", 210 "description": "Specify an array of path remappings; each element must itself be a two element array containing a source and destination pathname. Overrides sourcePath.", 211 "default": [] 212 }, 213 "debuggerRoot": { 214 "type": "string", 215 "description": "Specify a working directory to set the debug adaptor to so relative object files can be located." 216 }, 217 "targetTriple": { 218 "type": "string", 219 "description": "Triplet of the target architecture to override value derived from the program file." 220 }, 221 "platformName": { 222 "type": "string", 223 "description": "Name of the execution platform to override value derived from the program file." 224 }, 225 "attachCommands": { 226 "type": "array", 227 "description": "Custom commands that are executed instead of attaching to a process ID or to a process by name. These commands may optionally create a new target and must perform an attach. A valid process must exist after these commands complete or the \"attach\" will fail.", 228 "default": [] 229 }, 230 "initCommands": { 231 "type": "array", 232 "description": "Initialization commands executed upon debugger startup.", 233 "default": [] 234 }, 235 "preRunCommands": { 236 "type": "array", 237 "description": "Commands executed just before the program is attached to.", 238 "default": [] 239 }, 240 "stopCommands": { 241 "type": "array", 242 "description": "Commands executed each time the program stops.", 243 "default": [] 244 }, 245 "exitCommands": { 246 "type": "array", 247 "description": "Commands executed at the end of debugging session.", 248 "default": [] 249 }, 250 "coreFile": { 251 "type": "string", 252 "description": "Path to the core file to debug." 253 } 254 } 255 } 256 }, 257 "initialConfigurations": [ 258 { 259 "type": "lldb-vscode", 260 "request": "launch", 261 "name": "Debug", 262 "program": "${workspaceRoot}/<your program>", 263 "args": [], 264 "env": [], 265 "cwd": "${workspaceRoot}" 266 } 267 ], 268 "configurationSnippets": [ 269 { 270 "label": "LLDB: Launch", 271 "description": "", 272 "body": { 273 "type": "lldb-vscode", 274 "request": "launch", 275 "name": "${2:Launch}", 276 "program": "^\"\\${workspaceRoot}/${1:<your program>}\"", 277 "args": [], 278 "env": [], 279 "cwd": "^\"\\${workspaceRoot}\"" 280 } 281 } 282 ] 283 } 284 ] 285 } 286} 287