Walter Erquinigo a2a9918a85
[lldb-vscode] Make descriptive summaries and raw child for synthetics configurable (#65687)
"descriptive summaries" should only be used for small to medium binaries
because of the performance penalty the cause when completing types. I'm
defaulting it to false.
Besides that, the "raw child" for synthetics should be optional as well.
I'm defaulting it to false.

Both options can be set via a launch or attach config, following the
pattern of most settings. javascript extension wrappers can set these
settings on their own as well.
2023-09-11 17:00:01 -04:00

376 lines
12 KiB
JSON

{
"name": "lldb-vscode",
"displayName": "LLDB VSCode",
"version": "0.1.0",
"publisher": "llvm",
"homepage": "https://lldb.llvm.org",
"description": "LLDB debugging from VSCode",
"license": "Apache 2.0 License with LLVM exceptions",
"repository": {
"type": "git",
"url": "https://github.com/llvm/llvm-project.git"
},
"bugs": {
"url": "https://github.com/llvm/llvm-project/issues"
},
"keywords": [
"C",
"C++",
"LLVM",
"LLDB"
],
"engines": {
"vscode": "^1.18.0"
},
"categories": [
"Debuggers"
],
"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.",
"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 path name. Overrides sourcePath.",
"default": []
},
"debuggerRoot": {
"type": "string",
"description": "Specify a working directory to set the debug adapter 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. Launch the process with \"process launch -s\" to make the process to at the entry point since lldb-vscode will auto resume if necessary.",
"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
},
"timeout": {
"type": "string",
"description": "The time in seconds to wait for a program to stop at entry point when launching with \"launchCommands\". Defaults to 30 seconds."
},
"enableAutoVariableSummaries": {
"type": "boolean",
"description": "Enable auto generated summaries for variables when no summaries exist for a given type. This feature can cause performance delays in large projects when viewing variables.",
"default": false
},
"enableSyntheticChildDebugging": {
"type": "boolean",
"description": "If a variable is displayed using a synthetic children, also display the actual contents of the variable at the end under a [raw] entry. This is useful when creating sythetic child plug-ins as it lets you see the actual contents of the variable.",
"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 path name. Overrides sourcePath.",
"default": []
},
"debuggerRoot": {
"type": "string",
"description": "Specify a working directory to set the debug adapter 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."
},
"timeout": {
"type": "string",
"description": "The time in seconds to wait for a program to stop when attaching using \"attachCommands\". Defaults to 30 seconds."
},
"enableAutoVariableSummaries": {
"type": "boolean",
"description": "Enable auto generated summaries for variables when no summaries exist for a given type. This feature can cause performance delays in large projects when viewing variables.",
"default": false
},
"enableSyntheticChildDebugging": {
"type": "boolean",
"description": "If a variable is displayed using a synthetic children, also display the actual contents of the variable at the end under a [raw] entry. This is useful when creating sythetic child plug-ins as it lets you see the actual contents of the variable.",
"default": false
}
}
}
},
"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}\""
}
}
]
}
]
}
}