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. Launch the process with \"process launch -s\" to make the process to at the entry point since lldb-vscode will auto resume if necessary.", 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 "timeout": { 237 "type": "string", 238 "description": "The time in seconds to wait for a program to stop at entry point when launching with \"launchCommands\". Defaults to 30 seconds." 239 } 240 } 241 }, 242 "attach": { 243 "properties": { 244 "program": { 245 "type": "string", 246 "description": "Path to the program to attach to." 247 }, 248 "pid": { 249 "type": [ 250 "number", 251 "string" 252 ], 253 "description": "System process ID to attach to." 254 }, 255 "waitFor": { 256 "type": "boolean", 257 "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.", 258 "default": true 259 }, 260 "sourcePath": { 261 "type": "string", 262 "description": "Specify a source path to remap \"./\" to allow full paths to be used when setting breakpoints in binaries that have relative source paths." 263 }, 264 "sourceMap": { 265 "type": "array", 266 "description": "Specify an array of path remappings; each element must itself be a two element array containing a source and destination pathname. Overrides sourcePath.", 267 "default": [] 268 }, 269 "debuggerRoot": { 270 "type": "string", 271 "description": "Specify a working directory to set the debug adaptor to so relative object files can be located." 272 }, 273 "targetTriple": { 274 "type": "string", 275 "description": "Triplet of the target architecture to override value derived from the program file." 276 }, 277 "platformName": { 278 "type": "string", 279 "description": "Name of the execution platform to override value derived from the program file." 280 }, 281 "attachCommands": { 282 "type": "array", 283 "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.", 284 "default": [] 285 }, 286 "initCommands": { 287 "type": "array", 288 "description": "Initialization commands executed upon debugger startup.", 289 "default": [] 290 }, 291 "preRunCommands": { 292 "type": "array", 293 "description": "Commands executed just before the program is attached to.", 294 "default": [] 295 }, 296 "postRunCommands": { 297 "type": "array", 298 "description": "Commands executed just as soon as the program is successfully attached when it's in a stopped state prior to any automatic continuation.", 299 "default": [] 300 }, 301 "stopCommands": { 302 "type": "array", 303 "description": "Commands executed each time the program stops.", 304 "default": [] 305 }, 306 "exitCommands": { 307 "type": "array", 308 "description": "Commands executed at the end of debugging session.", 309 "default": [] 310 }, 311 "coreFile": { 312 "type": "string", 313 "description": "Path to the core file to debug." 314 }, 315 "timeout": { 316 "type": "string", 317 "description": "The time in seconds to wait for a program to stop when attaching using \"attachCommands\". Defaults to 30 seconds." 318 } 319 } 320 } 321 }, 322 "initialConfigurations": [ 323 { 324 "type": "lldb-vscode", 325 "request": "launch", 326 "name": "Debug", 327 "program": "${workspaceRoot}/<your program>", 328 "args": [], 329 "env": [], 330 "cwd": "${workspaceRoot}" 331 } 332 ], 333 "configurationSnippets": [ 334 { 335 "label": "LLDB: Launch", 336 "description": "", 337 "body": { 338 "type": "lldb-vscode", 339 "request": "launch", 340 "name": "${2:Launch}", 341 "program": "^\"\\${workspaceRoot}/${1:<your program>}\"", 342 "args": [], 343 "env": [], 344 "cwd": "^\"\\${workspaceRoot}\"" 345 } 346 } 347 ] 348 } 349 ] 350 } 351} 352