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 "breakpoints": [ 54 { 55 "language": "ada" 56 }, 57 { 58 "language": "arm" 59 }, 60 { 61 "language": "asm" 62 }, 63 { 64 "language": "c" 65 }, 66 { 67 "language": "cpp" 68 }, 69 { 70 "language": "crystal" 71 }, 72 { 73 "language": "d" 74 }, 75 { 76 "language": "fortan" 77 }, 78 { 79 "language": "fortran-modern" 80 }, 81 { 82 "language": "nim" 83 }, 84 { 85 "language": "objective-c" 86 }, 87 { 88 "language": "objectpascal" 89 }, 90 { 91 "language": "pascal" 92 }, 93 { 94 "language": "rust" 95 }, 96 { 97 "language": "swift" 98 } 99 ], 100 "debuggers": [ 101 { 102 "type": "lldb-vscode", 103 "label": "Native LLDB Debugger", 104 "enableBreakpointsFor": { 105 "languageIds": [ 106 "ada", 107 "arm", 108 "asm", 109 "c", 110 "cpp", 111 "crystal", 112 "d", 113 "fortan", 114 "fortran-modern", 115 "nim", 116 "objective-c", 117 "objectpascal", 118 "pascal", 119 "rust", 120 "swift" 121 ] 122 }, 123 "program": "./bin/lldb-vscode", 124 "windows": { 125 "program": "./bin/lldb-vscode.exe" 126 }, 127 "configurationAttributes": { 128 "launch": { 129 "required": [ 130 "program" 131 ], 132 "properties": { 133 "program": { 134 "type": "string", 135 "description": "Path to the program to debug." 136 }, 137 "args": { 138 "type": [ 139 "array", 140 "string" 141 ], 142 "description": "Program arguments.", 143 "default": [] 144 }, 145 "cwd": { 146 "type": "string", 147 "description": "Program working directory.", 148 "default": "${workspaceRoot}" 149 }, 150 "env": { 151 "type": "array", 152 "description": "Additional environment variables to set when launching the program. This is an array of strings that contains the variable name followed by an optional '=' character and the environment variable's value. Example: [\"FOO=BAR\", \"BAZ\"]", 153 "default": [] 154 }, 155 "stopOnEntry": { 156 "type": "boolean", 157 "description": "Automatically stop after launch.", 158 "default": false 159 }, 160 "disableASLR": { 161 "type": "boolean", 162 "description": "Enable or disable Address space layout randomization if the debugger supports it.", 163 "default": true 164 }, 165 "disableSTDIO": { 166 "type": "boolean", 167 "description": "Don't retrieve STDIN, STDOUT and STDERR as the program is running.", 168 "default": false 169 }, 170 "shellExpandArguments": { 171 "type": "boolean", 172 "description": "Expand program arguments as a shell would without actually launching the program in a shell.", 173 "default": false 174 }, 175 "detachOnError": { 176 "type": "boolean", 177 "description": "Detach from the program.", 178 "default": false 179 }, 180 "sourcePath": { 181 "type": "string", 182 "description": "Specify a source path to remap \"./\" to allow full paths to be used when setting breakpoints in binaries that have relative source paths." 183 }, 184 "sourceMap": { 185 "type": "array", 186 "description": "Specify an array of path remappings; each element must itself be a two element array containing a source and destination pathname. Overrides sourcePath.", 187 "default": [] 188 }, 189 "debuggerRoot": { 190 "type": "string", 191 "description": "Specify a working directory to set the debug adaptor to so relative object files can be located." 192 }, 193 "targetTriple": { 194 "type": "string", 195 "description": "Triplet of the target architecture to override value derived from the program file." 196 }, 197 "platformName": { 198 "type": "string", 199 "description": "Name of the execution platform to override value derived from the program file." 200 }, 201 "initCommands": { 202 "type": "array", 203 "description": "Initialization commands executed upon debugger startup.", 204 "default": [] 205 }, 206 "preRunCommands": { 207 "type": "array", 208 "description": "Commands executed just before the program is launched.", 209 "default": [] 210 }, 211 "postRunCommands": { 212 "type": "array", 213 "description": "Commands executed just as soon as the program is successfully launched when it's in a stopped state prior to any automatic continuation.", 214 "default": [] 215 }, 216 "launchCommands": { 217 "type": "array", 218 "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.", 219 "default": [] 220 }, 221 "stopCommands": { 222 "type": "array", 223 "description": "Commands executed each time the program stops.", 224 "default": [] 225 }, 226 "exitCommands": { 227 "type": "array", 228 "description": "Commands executed at the end of debugging session.", 229 "default": [] 230 }, 231 "runInTerminal": { 232 "type": "boolean", 233 "description": "Launch the program inside an integrated terminal in the IDE. Useful for debugging interactive command line programs", 234 "default": false 235 } 236 } 237 }, 238 "attach": { 239 "properties": { 240 "program": { 241 "type": "string", 242 "description": "Path to the program to attach to." 243 }, 244 "pid": { 245 "type": [ 246 "number", 247 "string" 248 ], 249 "description": "System process ID to attach to." 250 }, 251 "waitFor": { 252 "type": "boolean", 253 "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.", 254 "default": true 255 }, 256 "sourcePath": { 257 "type": "string", 258 "description": "Specify a source path to remap \"./\" to allow full paths to be used when setting breakpoints in binaries that have relative source paths." 259 }, 260 "sourceMap": { 261 "type": "array", 262 "description": "Specify an array of path remappings; each element must itself be a two element array containing a source and destination pathname. Overrides sourcePath.", 263 "default": [] 264 }, 265 "debuggerRoot": { 266 "type": "string", 267 "description": "Specify a working directory to set the debug adaptor to so relative object files can be located." 268 }, 269 "targetTriple": { 270 "type": "string", 271 "description": "Triplet of the target architecture to override value derived from the program file." 272 }, 273 "platformName": { 274 "type": "string", 275 "description": "Name of the execution platform to override value derived from the program file." 276 }, 277 "attachCommands": { 278 "type": "array", 279 "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.", 280 "default": [] 281 }, 282 "initCommands": { 283 "type": "array", 284 "description": "Initialization commands executed upon debugger startup.", 285 "default": [] 286 }, 287 "preRunCommands": { 288 "type": "array", 289 "description": "Commands executed just before the program is attached to.", 290 "default": [] 291 }, 292 "postRunCommands": { 293 "type": "array", 294 "description": "Commands executed just as soon as the program is successfully attached when it's in a stopped state prior to any automatic continuation.", 295 "default": [] 296 }, 297 "stopCommands": { 298 "type": "array", 299 "description": "Commands executed each time the program stops.", 300 "default": [] 301 }, 302 "exitCommands": { 303 "type": "array", 304 "description": "Commands executed at the end of debugging session.", 305 "default": [] 306 }, 307 "coreFile": { 308 "type": "string", 309 "description": "Path to the core file to debug." 310 } 311 } 312 } 313 }, 314 "initialConfigurations": [ 315 { 316 "type": "lldb-vscode", 317 "request": "launch", 318 "name": "Debug", 319 "program": "${workspaceRoot}/<your program>", 320 "args": [], 321 "env": [], 322 "cwd": "${workspaceRoot}" 323 } 324 ], 325 "configurationSnippets": [ 326 { 327 "label": "LLDB: Launch", 328 "description": "", 329 "body": { 330 "type": "lldb-vscode", 331 "request": "launch", 332 "name": "${2:Launch}", 333 "program": "^\"\\${workspaceRoot}/${1:<your program>}\"", 334 "args": [], 335 "env": [], 336 "cwd": "^\"\\${workspaceRoot}\"" 337 } 338 } 339 ] 340 } 341 ] 342 } 343} 344