blob: a5c79911f6e9faf6e70168b0f60bc34c8728f138 [file] [log] [blame]
{
"name": "lldb-vscode",
"displayName": "LLDB native Debug stub",
"version": "0.1.0",
"publisher": "llvm",
"repository": "llvm.org",
"description": "Debug adapter for LLDB which uses a C++ tool to interface directly with LLDB.",
"author": {
"name": "Greg Clayton",
"email": "clayborg@gmail.com"
},
"license": "LLVM",
"keywords": [
"multi-root ready"
],
"engines": {
"vscode": "^1.18.0",
"node": "^7.9.0"
},
"categories": [
"Debuggers"
],
"private": true,
"devDependencies": {
"@types/node": "7.0.43",
"@types/mocha": "2.2.45",
"typescript": "2.6.2",
"mocha": "4.0.1",
"vscode": "1.1.10",
"vscode-debugadapter-testsupport": "1.25.0",
"tslint": "5.8.0",
"vsce": "^1.36.3"
},
"contributes": {
"languages": [
{
"id": "lldb.disassembly",
"aliases": [
"Disassembly"
],
"extensions": [
".disasm"
]
}
],
"grammars": [
{
"language": "lldb.disassembly",
"scopeName": "source.disassembly",
"path": "./syntaxes/disassembly.json"
}
],
"breakpoints": [
{
"language": "ada"
},
{
"language": "arm"
},
{
"language": "asm"
},
{
"language": "c"
},
{
"language": "cpp"
},
{
"language": "crystal"
},
{
"language": "d"
},
{
"language": "fortan"
},
{
"language": "fortran-modern"
},
{
"language": "nim"
},
{
"language": "objective-c"
},
{
"language": "objectpascal"
},
{
"language": "pascal"
},
{
"language": "rust"
},
{
"language": "swift"
}
],
"debuggers": [
{
"type": "lldb-vscode",
"label": "Native LLDB Debugger",
"enableBreakpointsFor": {
"languageIds": [
"ada",
"arm",
"asm",
"c",
"cpp",
"crystal",
"d",
"fortan",
"fortran-modern",
"nim",
"objective-c",
"objectpascal",
"pascal",
"rust",
"swift"
]
},
"program": "./bin/lldb-vscode",
"windows": {
"program": "./bin/lldb-vscode.exe"
},
"configurationAttributes": {
"launch": {
"required": [
"program"
],
"properties": {
"program": {
"type": "string",
"description": "Path to the program to debug."
},
"args": {
"type": [
"array",
"string"
],
"description": "Program arguments.",
"default": []
},
"cwd": {
"type": "string",
"description": "Program working directory.",
"default": "${workspaceRoot}"
},
"env": {
"type": "array",
"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\"]",
"default": []
},
"stopOnEntry": {
"type": "boolean",
"description": "Automatically stop after launch.",
"default": false
},
"disableASLR": {
"type": "boolean",
"description": "Enable or disable Address space layout randomization if the debugger supports it.",
"default": true
},
"disableSTDIO": {
"type": "boolean",
"description": "Don't retrieve STDIN, STDOUT and STDERR as the program is running.",
"default": false
},
"shellExpandArguments": {
"type": "boolean",
"description": "Expand program arguments as a shell would without actually launching the program in a shell.",
"default": false
},
"detachOnError": {
"type": "boolean",
"description": "Detach from the program.",
"default": false
},
"sourcePath": {
"type": "string",
"description": "Specify a source path to remap \"./\" to allow full paths to be used when setting breakpoints in binaries that have relative source paths."
},
"sourceMap": {
"type": "array",
"description": "Specify an array of path remappings; each element must itself be a two element array containing a source and destination pathname. Overrides sourcePath.",
"default": []
},
"debuggerRoot": {
"type": "string",
"description": "Specify a working directory to set the debug adaptor to so relative object files can be located."
},
"targetTriple": {
"type": "string",
"description": "Triplet of the target architecture to override value derived from the program file."
},
"platformName": {
"type": "string",
"description": "Name of the execution platform to override value derived from the program file."
},
"initCommands": {
"type": "array",
"description": "Initialization commands executed upon debugger startup.",
"default": []
},
"preRunCommands": {
"type": "array",
"description": "Commands executed just before the program is launched.",
"default": []
},
"postRunCommands": {
"type": "array",
"description": "Commands executed just as soon as the program is successfully launched when it's in a stopped state prior to any automatic continuation.",
"default": []
},
"launchCommands": {
"type": "array",
"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.",
"default": []
},
"stopCommands": {
"type": "array",
"description": "Commands executed each time the program stops.",
"default": []
},
"exitCommands": {
"type": "array",
"description": "Commands executed at the end of debugging session.",
"default": []
},
"runInTerminal": {
"type": "boolean",
"description": "Launch the program inside an integrated terminal in the IDE. Useful for debugging interactive command line programs",
"default": false
}
}
},
"attach": {
"properties": {
"program": {
"type": "string",
"description": "Path to the program to attach to."
},
"pid": {
"type": [
"number",
"string"
],
"description": "System process ID to attach to."
},
"waitFor": {
"type": "boolean",
"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.",
"default": true
},
"sourcePath": {
"type": "string",
"description": "Specify a source path to remap \"./\" to allow full paths to be used when setting breakpoints in binaries that have relative source paths."
},
"sourceMap": {
"type": "array",
"description": "Specify an array of path remappings; each element must itself be a two element array containing a source and destination pathname. Overrides sourcePath.",
"default": []
},
"debuggerRoot": {
"type": "string",
"description": "Specify a working directory to set the debug adaptor to so relative object files can be located."
},
"targetTriple": {
"type": "string",
"description": "Triplet of the target architecture to override value derived from the program file."
},
"platformName": {
"type": "string",
"description": "Name of the execution platform to override value derived from the program file."
},
"attachCommands": {
"type": "array",
"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.",
"default": []
},
"initCommands": {
"type": "array",
"description": "Initialization commands executed upon debugger startup.",
"default": []
},
"preRunCommands": {
"type": "array",
"description": "Commands executed just before the program is attached to.",
"default": []
},
"postRunCommands": {
"type": "array",
"description": "Commands executed just as soon as the program is successfully attached when it's in a stopped state prior to any automatic continuation.",
"default": []
},
"stopCommands": {
"type": "array",
"description": "Commands executed each time the program stops.",
"default": []
},
"exitCommands": {
"type": "array",
"description": "Commands executed at the end of debugging session.",
"default": []
},
"coreFile": {
"type": "string",
"description": "Path to the core file to debug."
}
}
}
},
"initialConfigurations": [
{
"type": "lldb-vscode",
"request": "launch",
"name": "Debug",
"program": "${workspaceRoot}/<your program>",
"args": [],
"env": [],
"cwd": "${workspaceRoot}"
}
],
"configurationSnippets": [
{
"label": "LLDB: Launch",
"description": "",
"body": {
"type": "lldb-vscode",
"request": "launch",
"name": "${2:Launch}",
"program": "^\"\\${workspaceRoot}/${1:<your program>}\"",
"args": [],
"env": [],
"cwd": "^\"\\${workspaceRoot}\""
}
}
]
}
]
}
}