代码拉取完成,页面将自动刷新
{
"version": "1.12.2-pre",
"preview": false,
"activationEvents": [
"onDebugResolve:cortex-debug",
"onStartupFinished"
],
"categories": [
"Debuggers"
],
"contributes": {
"configuration": [
{
"type": "object",
"title": "Debugger",
"properties": {
"cortex-debug.variableUseNaturalFormat": {
"type": "boolean",
"default": true,
"description": "If true, display variables in their natural format as specified by ARM. Hex otherwise."
},
"cortex-debug.liveWatchRefreshRate": {
"default": "300",
"description": "GUI refresh frequency in milliseconds. Your sample rate can be much faster than refresh rate. VSCode UI cannot handle high refresh rates and your Live Watch window will look frozen. Do not recommend below 250ms as it will not be legible anyways. Anything below 200ms did not work at all for us",
"type": "number",
"multipleOf": 1,
"minimum": 100,
"maximum": 5000
}
}
},
{
"type": "object",
"title": "External: GNU Tools",
"properties": {
"cortex-debug.armToolchainPath": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the GCC Arm Toolchain (standard prefix is \"arm-none-eabi\" - can be set through the armToolchainPrefix setting) to use. If not set the tools must be on the system path. Do not include the executable file name in this path."
},
"cortex-debug.armToolchainPath.linux": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the GCC Arm Toolchain (standard prefix is \"arm-none-eabi\" - can be set through the armToolchainPrefix setting) to use. If not set the tools must be on the system path. Do not include the executable file name in this path."
},
"cortex-debug.armToolchainPath.osx": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the GCC Arm Toolchain (standard prefix is \"arm-none-eabi\" - can be set through the armToolchainPrefix setting) to use. If not set the tools must be on the system path. Do not include the executable file name in this path."
},
"cortex-debug.armToolchainPath.windows": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the GCC Arm Toolchain (standard prefix is \"arm-none-eabi\" - can be set through the armToolchainPrefix setting) to use. If not set the tools must be on the system path. Do not include the executable file name in this path."
},
"cortex-debug.armToolchainPrefix": {
"type": [
"string",
"null"
],
"default": "arm-none-eabi",
"description": "The prefix to use for the arm toolchain - the standard release from arm uses \"arm-none-eabi\" but alternative toolchains may use a different prefix. Currently the gdb, objdump and nm tools are needed."
},
"cortex-debug.gdbPath.linux": {
"type": [
"string",
"null"
],
"default": null,
"description": "This setting allows you to completely override the path/executable for the GDB executable. This is useful for cases where your gdb executable doesn't follow the standard <tuple>-gdb format - for example `gdb-multiarch`. This can be just the executable name (if on the system path) or the full path."
},
"cortex-debug.gdbPath.osx": {
"type": [
"string",
"null"
],
"default": null,
"description": "This setting allows you to completely override the path/executable for the GDB executable. This is useful for cases where your gdb executable doesn't follow the standard <tuple>-gdb format - for example `gdb-multiarch`. This can be just the executable name (if on the system path) or the full path."
},
"cortex-debug.gdbPath.windows": {
"type": [
"string",
"null"
],
"default": null,
"description": "This setting allows you to completely override the path/executable for the GDB executable. This is useful for cases where your gdb executable doesn't follow the standard <tuple>-gdb format - for example `gdb-multiarch`. This can be just the executable name (if on the system path) or the full path."
},
"cortex-debug.gdbPath": {
"type": [
"string",
"null"
],
"default": null,
"description": "This setting allows you to completely override the path/executable for the GDB executable. This is useful for cases where your gdb executable doesn't follow the standard <tuple>-gdb format - for example `gdb-multiarch`. This can be just the executable name (if on the system path) or the full path."
},
"cortex-debug.objdumpPath.linux": {
"type": [
"string",
"null"
],
"default": null,
"description": "This setting allows you to completely override the path/executable for the objdump executable. This is useful for cases where your objdump executable doesn't follow the standard <tuple>-objdump format - for example `objdump-multiarch`. This can be just the executable name (if on the system path) or the full path. The program 'nm' is also expected alongside"
},
"cortex-debug.objdumpPath.osx": {
"type": [
"string",
"null"
],
"default": null,
"description": "This setting allows you to completely override the path/executable for the objdump executable. This is useful for cases where your objdump executable doesn't follow the standard <tuple>-objdump format - for example `objdump-multiarch`. This can be just the executable name (if on the system path) or the full path. The program 'nm' is also expected alongside"
},
"cortex-debug.objdumpPath.windows": {
"type": [
"string",
"null"
],
"default": null,
"description": "This setting allows you to completely override the path/executable for the objdump executable. This is useful for cases where your objdump executable doesn't follow the standard <tuple>-objdump format - for example `objdump-multiarch`. This can be just the executable name (if on the system path) or the full path. The program 'nm' is also expected alongside"
},
"cortex-debug.objdumpPath": {
"type": [
"string",
"null"
],
"default": null,
"description": "This setting allows you to completely override the path/executable for the objdump executable. This is useful for cases where your objdump executable doesn't follow the standard <tuple>-objdump format - for example `objdump-multiarch`. This can be just the executable name (if on the system path) or the full path. The program 'nm' is also expected alongside"
}
}
},
{
"type": "object",
"title": "External: GDB Servers",
"properties": {
"cortex-debug.JLinkGDBServerPath": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the JLink GDB Server. If not set then JLinkGDBServer (JLinkGDBServerCL.exe on Windows) must be on the system path."
},
"cortex-debug.JLinkGDBServerPath.linux": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the JLink GDB Server. If not set then JLinkGDBServer (JLinkGDBServerCLExe) must be on the system path."
},
"cortex-debug.JLinkGDBServerPath.osx": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the JLink GDB Server. If not set then JLinkGDBServer (JLinkGDBServerCLExe) must be on the system path."
},
"cortex-debug.JLinkGDBServerPath.windows": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the JLink GDB Server. If not set then JLinkGDBServer (JLinkGDBServerCL.exe) must be on the system path."
},
"cortex-debug.openocdPath": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the OpenOCD GDB Server executable. If not set then openocd (openocd.exe on Windows) must be on the system path."
},
"cortex-debug.openocdPath.linux": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the OpenOCD GDB Server executable. If not set then openocd (openocd.exe on Windows) must be on the system path."
},
"cortex-debug.openocdPath.osx": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the OpenOCD GDB Server executable. If not set then openocd (openocd.exe on Windows) must be on the system path."
},
"cortex-debug.openocdPath.windows": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the OpenOCD GDB Server executable. If not set then openocd (openocd.exe on Windows) must be on the system path."
},
"cortex-debug.pyocdPath": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the PyOCD GDB Server executable. If not set then pyocd-gdbserver must be on the system path."
},
"cortex-debug.pyocdPath.linux": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the PyOCD GDB Server executable. If not set then pyocd-gdbserver must be on the system path."
},
"cortex-debug.pyocdPath.osx": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the PyOCD GDB Server executable. If not set then pyocd-gdbserver must be on the system path."
},
"cortex-debug.pyocdPath.windows": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the PyOCD GDB Server executable. If not set then pyocd-gdbserver must be on the system path."
},
"cortex-debug.PEGDBServerPath": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the PEMicro GDB Server. If not set then PEGDBServer (pegdbserver_console.exe on Windows) must be on the system path."
},
"cortex-debug.PEGDBServerPath.linux": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the PEMicro GDB Server. If not set then PEGDBServer (pegdbserver_console.exe on Windows) must be on the system path."
},
"cortex-debug.PEGDBServerPath.osx": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the PEMicro GDB Server. If not set then PEGDBServer (pegdbserver_console.exe on Windows) must be on the system path."
},
"cortex-debug.PEGDBServerPath.windows": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the PEMicro GDB Server. If not set then PEGDBServer (pegdbserver_console.exe on Windows) must be on the system path."
},
"cortex-debug.stutilPath": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the Texane's ST-Util GDB Server executable. If not set then st-util (st-util.exe on Windows) must be on the system path."
},
"cortex-debug.stutilPath.linux": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the Texane's ST-Util GDB Server executable. If not set then st-util (st-util.exe on Windows) must be on the system path."
},
"cortex-debug.stutilPath.osx": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the Texane's ST-Util GDB Server executable. If not set then st-util (st-util.exe on Windows) must be on the system path."
},
"cortex-debug.stutilPath.windows": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the Texane's ST-Util GDB Server executable. If not set then st-util (st-util.exe on Windows) must be on the system path."
},
"cortex-debug.stlinkPath": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the ST-LINK_gdbserver executable. If not set then ST-LINK_gdbserver (ST-LINK_gdbserver.exe on Windows) must be on the system path."
},
"cortex-debug.stlinkPath.linux": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the ST-LINK_gdbserver executable. If not set then ST-LINK_gdbserver (ST-LINK_gdbserver.exe on Windows) must be on the system path."
},
"cortex-debug.stlinkPath.osx": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the ST-LINK_gdbserver executable. If not set then ST-LINK_gdbserver (ST-LINK_gdbserver.exe on Windows) must be on the system path."
},
"cortex-debug.stlinkPath.windows": {
"type": [
"string",
"null"
],
"default": null,
"description": "Path to the ST-LINK_gdbserver executable. If not set then ST-LINK_gdbserver (ST-LINK_gdbserver.exe on Windows) must be on the system path."
},
"cortex-debug.stm32cubeprogrammer": {
"type": [
"string",
"null"
],
"default": null,
"description": "This path is normally resolved to the installed STM32CubeIDE or STM32CubeProgrammer but can be overridden here."
},
"cortex-debug.stm32cubeprogrammer.linux": {
"type": [
"string",
"null"
],
"default": null,
"description": "This path is normally resolved to the installed STM32CubeIDE or STM32CubeProgrammer but can be overridden here."
},
"cortex-debug.stm32cubeprogrammer.osx": {
"type": [
"string",
"null"
],
"default": null,
"description": "This path is normally resolved to the installed STM32CubeIDE or STM32CubeProgrammer but can be overridden here."
},
"cortex-debug.stm32cubeprogrammer.windows": {
"type": [
"string",
"null"
],
"default": null,
"description": "This path is normally resolved to the installed STM32CubeIDE or STM32CubeProgrammer but can be overridden here."
}
}
},
{
"type": "object",
"title": "Miscellaneous",
"properties": {
"cortex-debug.enableTelemetry": {
"type": "boolean",
"default": true,
"description": "Enable Telemetry for the Cortex-Debug Extension. Reporting will also respect the global telemetry.enableTelemetry setting."
},
"cortex-debug.dbgServerLogfile": {
"type": [
"string",
"null"
],
"default": null,
"description": "Logs the contents of the gdb-server terminal. Use ${PID} in the file name to make it unique per VSCode session"
}
}
}
],
"commands": [
{
"command": "cortex-debug.resetDevice",
"title": "Reset device",
"icon": {
"dark": "images/reset-dark.svg",
"light": "images/reset-light.svg"
}
},
{
"command": "cortex-debug.varHexModeTurnOff",
"title": "Disable Hex mode",
"icon": {
"light": "images/hex-on-light.svg",
"dark": "images/hex-on-dark.svg"
}
},
{
"command": "cortex-debug.varHexModeTurnOn",
"title": "Enable Hex mode",
"icon": {
"light": "images/hex-off-light.svg",
"dark": "images/hex-off-dark.svg"
}
},
{
"command": "cortex-debug.liveWatch.removeExpr",
"title": "Remove expression",
"icon": "$(close)"
},
{
"command": "cortex-debug.liveWatch.editExpr",
"title": "Edit expression",
"icon": "$(edit)"
},
{
"command": "cortex-debug.liveWatch.moveUp",
"title": "Move expression up",
"icon": "$(arrow-up)"
},
{
"command": "cortex-debug.liveWatch.moveDown",
"title": "Move expression down",
"icon": "$(arrow-down)"
},
{
"command": "cortex-debug.liveWatch.addToLiveWatch",
"title": "Add to Live Watch",
"icon": "$(plus)"
},
{
"category": "Cortex-Debug",
"command": "cortex-debug.examineMemory",
"title": "View Memory"
},
{
"category": "Cortex-Debug",
"command": "cortex-debug.examineMemoryLegacy",
"title": "View Memory (Legacy)"
},
{
"category": "Cortex-Debug",
"command": "cortex-debug.toggleVariableHexFormat",
"title": "Toggle hex display in Variables window"
},
{
"category": "Cortex-Debug",
"command": "cortex-debug.liveWatch.addExpr",
"title": "Add expression to Live Watch window",
"icon": "$(plus)"
}
],
"keybindings": [
{
"command": "cortex-debug.toggleVariableHexFormat",
"key": "ctrl+shift+x",
"when": "debugType == cortex-debug"
}
],
"languages": [
{
"id": "cortex-debug.memoryview",
"aliases": [
"Cortex-Debug Memory View"
],
"extensions": [
".cdmem"
]
}
],
"grammars": [
{
"language": "cortex-debug.memoryview",
"scopeName": "source.cortex-debug-memoryview",
"path": "./syntaxes/cortex-debug-memoryview.json"
}
],
"breakpoints": [
{
"language": "c"
},
{
"language": "cpp"
},
{
"language": "rust"
},
{
"language": "arm"
},
{
"language": "asm"
},
{
"language": "S"
},
{
"language": "s"
},
{
"language": "cortex-debug.disassembly"
}
],
"debuggers": [
{
"configurationAttributes": {
"attach": {
"properties": {
"servertype": {
"type": "string",
"description": "GDB Server type - supported types are jlink, openocd, pyocd, pe, stlink, stutil, qemu, bmp and external. For \"external\", [please read our Wiki](https://github.com/Marus/cortex-debug/wiki/External-gdb-server-configuration)",
"enum": [
"jlink",
"openocd",
"pyocd",
"stutil",
"stlink",
"bmp",
"pe",
"qemu",
"external"
]
},
"cwd": {
"description": "Directory to run commands from",
"type": "string"
},
"debuggerArgs": {
"default": [],
"description": "Additional arguments to pass to GDB command line",
"type": "array",
"items": "string"
},
"preAttachCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed at the start of the main attach sequence (immediately after attaching to target)."
},
"postAttachCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed after the main attach sequence has finished."
},
"preRestartCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed at the beginning of the restart sequence (after interrupting execution)."
},
"postRestartCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed at the end of the restart sequence."
},
"preResetCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed at the beginning of the reset sequence (after interrupting execution). When not defined this will have the same value of preRestartCommands."
},
"postResetCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed at the end of the reset sequence. When not defined this will have the same value of postRestartCommands."
},
"overrideAttachCommands": {
"default": null,
"type": "array",
"items": "string",
"description": "You can use this to property to override the commands that are normally executed as part of attaching to a running target. In most cases it is preferable to use preAttachCommands and postAttachCommands to customize the GDB attach sequence."
},
"overrideRestartCommands": {
"default": null,
"type": "array",
"items": "string",
"description": "You can use this to property to override the commands that are normally executed as part of restarting the target. In most cases it is preferable to use preRestartCommands and postRestartCommands to customize the GDB restart sequence."
},
"overrideResetCommands": {
"default": null,
"type": "array",
"items": "string",
"description": "You can use this to property to override the commands that are normally executed as part of reset the target. When not defined this will have the same value of overrideRestartCommands. In most cases it is preferable to use preResetCommands and postResetCommands to customize the GDB reset sequence."
},
"postStartSessionCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed at the end of the start sequence, after a debug session has already started and runToEntryPoint is not specified."
},
"postRestartSessionCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed at the end of the re-start sequence, after a debug session has already started."
},
"overrideGDBServerStartedRegex": {
"description": "You can supply a regular expression (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) in the configuration property to override the output from the GDB Server that is looked for to determine if the GDB Server has started. Under most circumstances this will not be necessary - but could be needed as a result of a change in the output of a GDB Server making it incompatible with cortex-debug. This property has no effect for bmp or external GDB Server types.",
"type": "string",
"default": null
},
"cpu": {
"default": "cortex-m3",
"type": "string",
"description": "CPU Type Selection - used for QEMU server type",
"enum": [
"cortex-m3",
"cortex-m4"
]
},
"machine": {
"default": "lm3s811evb",
"type": "string",
"description": "Machine Type Selection - used for QEMU server type",
"enum": [
"lm3s811evb",
"lm3s6965evb",
"mps2-an385"
]
},
"device": {
"default": "",
"description": "Target Device Identifier",
"type": "string"
},
"rtos": {
"default": null,
"description": "RTOS being used. For JLink this can be Azure, ChibiOS, embOS, FreeRTOS, NuttX, Zephyr or the path to a custom JLink RTOS Plugin library. For OpenOCD this can be auto (recommended), FreeRTOS, ThreadX, chibios, Chromium-EC, eCos, embKernel, linux, mqx, nuttx, RIOT, uCOS-III, or Zephyr.",
"type": "string"
},
"armToolchainPath": {
"default": null,
"description": "This setting can be used to override the armToolchainPath user setting for a particular launch configuration. This should be the path where arm-none-eabi-gdb, arm-none-eabi-objdump and arm-none-eabi-nm are located.",
"type": "string"
},
"toolchainPrefix": {
"default": null,
"description": "This setting can be used to override the toolchainPrefix user setting for a particular launch configuration. Default = \"arm-none-eabi\"",
"type": "string"
},
"serverpath": {
"default": null,
"description": "This setting can be used to override the GDB Server path user/workspace setting for a particular launch configuration. It is the full pathname to the executable or name of executable if it is in your PATH",
"type": "string"
},
"gdbPath": {
"default": null,
"description": "This setting can be used to override the GDB path user/workspace setting for a particular launch configuration. This should be the full pathname to the executable (or name of the executable if it is in your PATH). Note that other toolchain executables with the configured prefix must still be available.",
"type": "string"
},
"objdumpPath": {
"default": null,
"description": "This setting can be used to override the objdump (used to find globals/statics) path user/workspace setting for a particular launch configuration. This should be the full pathname to the executable (or name of the executable if it is in your PATH). Note that other toolchain executables with the configured prefix must still be available. The program 'nm' is also expected alongside",
"type": "string"
},
"serverArgs": {
"default": [],
"description": "Additional arguments to pass to GDB Server command line",
"type": "array",
"items": "string"
},
"executable": {
"description": "Path of executable for symbols and program information. See also `loadFiles`, `symbolFiles`",
"type": "string"
},
"symbolFiles": {
"description": "Array of ELF files to load symbols from instead of the executable file. Each item in the array cab be a string or an object. Program information is ignored (see `loadFiles`). Can be an empty list to specify none. If this property does not exist, then the executable is used for symbols",
"type": "array",
"items": {
"type": ["object", "string"],
"properties": {
"file": {
"type": "string",
"description": "Pathname of an ELF file for symbols"
},
"offset": {
"type": [
"number",
"string"
],
"description": "Optional offset to apply to all sections of the ELF file. Use a string strarting with '0x' for a hexadecimal number"
},
"textaddress": {
"type": [
"number",
"string"
],
"description": "Optional: Load the TEXT section at the specified 'textaddress'. Use a string strarting with '0x' for a hexadecimal number"
},
"sections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Section name"
},
"address": {
"type": [
"number",
"string"
],
"description": "Base address for section. Use a string strarting with '0x' for a hexadecimal number"
}
},
"required": [
"name",
"address"
]
}
}
},
"required": [
"file"
]
},
"default": null
},
"gdbTarget": {
"default": null,
"description": "For externally (servertype = \"external\") controlled GDB Servers you must specify the GDB target to connect to. This can either be a \"hostname:port\" combination or path to a serial port",
"type": "string"
},
"breakAfterReset": {
"default": false,
"type": "boolean",
"description": "Applies to Restart/Reset/Launch, halt debugger after a reset. Ignored if `runToEntryPoint` is used."
},
"runToEntryPoint": {
"description": "Applies to Launch/Restart/Reset, ignored for Attach. If enabled the debugger will run until the start of the given function.",
"type": "string",
"default": "main"
},
"numberOfProcessors": {
"description": "Number of processors/cores in the target device.",
"type": "number",
"multipleOf": 1,
"minimum": 1,
"maximum": 10,
"default": 1
},
"targetProcessor": {
"description": "The processor you want to debug. Zero based integer index. Must be less than 'numberOfProcessors'",
"type": "number",
"multipleOf": 1,
"minimum": 0,
"maximum": 9,
"default": 0
},
"liveWatch": {
"description": "An object with parameters for Live Watch",
"properties": {
"enabled": {
"default": false,
"description": "Enable/Disable Live Watch. Only applies to OpenOCD",
"type": "boolean"
},
"samplesPerSecond": {
"default": 2,
"description": "Maximum number of samples per second. Different from GUI refresh-rate, which is a user/workspace setting",
"type": "number",
"multipleOf": 1,
"minimum": 0,
"maximum": 20
}
},
"default": {
"enabled": true,
"samplesPerSecond": 4
}
},
"chainedConfigurations": {
"description": "An object describing how additional configurations should be launched",
"properties": {
"enabled": {
"default": true,
"description": "Enable/Disable entire set of chained configurations",
"type": "boolean"
},
"detached": {
"default": false,
"description": "Related or independent server sessions. Set to true for servers like 'JLink'. Inherited by children",
"type": "boolean"
},
"lifecycleManagedByParent": {
"default": true,
"description": "Are Restart/Reset/Stop/Disconnect shared? All life-cycle management done as a group by parent/root. Inherited by children",
"type": "boolean"
},
"waitOnEvent": {
"enum": [
"postStart",
"postInit"
],
"default": "postInit",
"description": "Event to wait for. 'postStart' means wait for gdb-server connecting, 'postInit' is after init commands are completed by gdb. Inherited by children",
"type": "string"
},
"delayMs": {
"type": "number",
"description": "Default delay in milliseconds for a certain amount of milliseconds to begin launch. Inherited by children",
"multipleOf": 1,
"minimum": 0,
"default": 5
},
"overrides": {
"default": {},
"description": "Values to override/set in this child configuration. A set of name/value pairs. Set value to 'null' (no quotes) to delete. Sorry, no IntelliSense",
"type": "object"
},
"inherits": {
"default": [],
"description": "List of properties to inherit from parent. This is processed before any overrides. Sorry, no IntelliSense",
"type": "array",
"items": {
"type": "string"
}
},
"launches": {
"type": "array",
"items": {
"properties": {
"name": {
"default": "",
"description": "Name of launch configuration. Sorry, no IntelliSense",
"type": "string"
},
"folder": {
"default": "",
"description": "Folder to use for this configuration. Where .vscode/launch.json exists. Default is same folder as parent. Use either the full path name or the base-name of the folder",
"type": "string"
},
"enabled": {
"default": true,
"description": "Enable/Disable this configuration",
"type": "boolean"
},
"detached": {
"default": false,
"description": "Related or independent server sessions. Set to true for servers like 'JLink'",
"type": "boolean"
},
"waitOnEvent": {
"enum": [
"postStart",
"postInit"
],
"default": "postInit",
"description": "Wait for an event. 'postStart' means wait for gdb-server connecting, 'postInit' is after init commands are completed by gdb",
"type": "string"
},
"delayMs": {
"type": "number",
"description": "Delay in milliseconds for a certain amount of milliseconds to begin launch",
"multipleOf": 1,
"minimum": 0,
"default": 5
},
"lifecycleManagedByParent": {
"default": true,
"description": "Are Restart/Reset/Stop/Disconnect shared? All life-cycle management done as a group by parent/root",
"type": "boolean"
},
"overrides": {
"default": {},
"description": "Values to override/set in this child configuration. A set of name/value pairs. Set value to 'null' (no quotes) to delete. Sorry, no IntelliSense",
"type": "object"
},
"inherits": {
"default": [],
"description": "List of properties to inherit from parent. This is processed before any overrides. Sorry, no IntelliSense",
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"default": {
"enabled": true,
"waitOnEvent": "postInit",
"lifeCycleShared": true,
"launches": [
{
"name": "use EXACT name of chained configuration to launch",
"folder": "use full path or folder basename or leave empty"
}
]
}
},
"graphConfig": {
"description": "Description of how graphing can be done. See our Wiki for details",
"items": {
"oneOf": [
{
"properties": {
"annotate": {
"default": true,
"description": "Create annotations on the graph for when the target processor starts and stops execution. (green line for starting execution, red line for stopping execution).",
"type": "boolean"
},
"label": {
"description": "Label for Graph",
"type": "string"
},
"maximum": {
"default": 65535,
"description": "Maximum value for the X-Axis",
"type": "number"
},
"minimum": {
"default": 0,
"description": "Minimum value for the Y-Axis",
"type": "number"
},
"plots": {
"description": "Plot configurations. Data sources must be configured for \"graph\" (or \"advanced\" with a decoder that sends graph data) in the \"swoConfig\" section",
"items": {
"properties": {
"color": {
"pattern": "^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$",
"type": "string"
},
"graphId": {
"description": "Graph Data Source Id for the plot.",
"type": "string"
},
"label": {
"description": "A label for this data set",
"type": "string"
}
},
"required": [
"graphId"
],
"type": "object"
},
"type": "array"
},
"timespan": {
"default": 30,
"description": "Length of time (seconds) to be plotted on screen.",
"type": "number"
},
"type": {
"enum": [
"realtime"
],
"type": "string"
}
},
"required": [
"label",
"plots",
"minimum",
"maximum"
],
"type": "object"
},
{
"properties": {
"label": {
"description": "Label for graph",
"type": "string"
},
"timespan": {
"default": 10,
"description": "The amount of time (seconds) that the XY Plot will show the trace for.",
"type": "number"
},
"type": {
"enum": [
"x-y-plot"
],
"type": "string"
},
"xGraphId": {
"description": "Graph Data Source Id for the X axis",
"type": "string"
},
"xMaximum": {
"default": 65535,
"description": "Maximum value on the X-Axis",
"type": "number"
},
"xMinimum": {
"default": 0,
"description": "Minimum value on the X-Axis",
"type": "number"
},
"yGraphId": {
"description": "Graph Data Source Id Port for the Y axis",
"type": "string"
},
"yMaximum": {
"default": 65535,
"description": "Maximum value on the Y-Axis",
"type": "number"
},
"yMinimum": {
"default": 0,
"description": "Minimum value on the Y-Axis",
"type": "number"
}
},
"required": [
"xGraphId",
"yGraphId",
"label"
],
"type": "object"
}
]
},
"type": "array"
},
"showDevDebugOutput": {
"enum": [
"none",
"parsed",
"raw",
"both",
"vscode"
],
"default": "none",
"description": "Used to debug this extension. Prints all GDB responses to the console. 'raw' prints gdb responses, 'parsed' prints results after parsing, 'both' prints both. 'vscode' shows raw and VSCode interactions",
"type": "string"
},
"showDevDebugTimestamps": {
"default": false,
"description": "Show timestamps when 'showDevDebugOutput' is enabled",
"type": "boolean"
},
"svdFile": {
"default": null,
"description": "This is for 'XPERIPHERALS' window provided by 'mcu-debug.peripheral-viewer'. It can be a simple file name or more based on a CMSIS pack or deviceName. See 'mcu-debug.peripheral-viewer' for format",
"type": "string"
},
"svdPath": {
"default": null,
"description": "This is for 'XPERIPHERALS' window provided by 'mcu-debug.peripheral-viewer' and 'Embedded Tools' Extension from Microsoft. It can be a simple file name. For 'mcu-debug.peripheral-viewer' or more based on a CMSIS pack or deviceName. See 'mcu-debug.peripheral-viewer' for format",
"type": "string"
},
"rttConfig": {
"type": "object",
"description": "SEGGER's Real Time Trace (RTT) and supported by JLink, OpenOCD and perhaps others in the future",
"default": {
"enabled": true,
"address": "auto",
"decoders": [
{
"label": "",
"port": 0,
"type": "console"
}
]
},
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable/Disable RTT",
"default": false
},
"address": {
"type": "string",
"description": "Address to start searching for the RTT control block. Use \"auto\" for Cortex-Debug to use the address from elf file",
"default": "auto"
},
"searchSize": {
"type": "number",
"description": "Number of bytes to search for the RTT control block. If 'address' is 'auto', use ONLY if you have a custom RTT implementation",
"multipleOf": 1,
"minimum": 16,
"default": 16
},
"searchId": {
"type": "string",
"description": "A string to search for to find the RTT control block. If 'address' is 'auto', use ONLY if you have a custom RTT implementation",
"default": "SEGGER RTT"
},
"polling_interval": {
"type": "number",
"description": "number of milliseconds (> 0) to wait for check for data on out channels. Only for OpenOCD",
"default": 0,
"minimum": 1
},
"rtt_start_retry": {
"type": "number",
"description": "Keep trying to start RTT for OpenOCD until it succeeds with given internal in milliseconds. <= 0 means do not retry. Only for OpenOCD",
"default": 1000,
"minimum": 0
},
"clearSearch": {
"type": "boolean",
"description": "When true, clears the search-string. Only applicable when address is \"auto\"",
"default": true
},
"decoders": {
"description": "SWO Decoder Configuration",
"items": {
"anyOf": [
{
"properties": {
"label": {
"description": "A label for RTT Console",
"type": "string"
},
"port": {
"description": "RTT Channel Number (0 to 15)",
"default": 0,
"maximum": 15,
"minimum": 0,
"multipleOf": 1,
"type": "number"
},
"type": {
"enum": [
"console",
"binary"
],
"default": "console",
"description": "'console' with text input/output, 'binary' is for converting byte stream to other data types",
"type": "string"
},
"prompt": {
"description": "Prompt to use for RTT Console",
"type": "string",
"default": ""
},
"noprompt": {
"description": "Don't use a prompt for RTT Console",
"type": "boolean",
"default": false
},
"noclear": {
"description": "append to screen/logfile when another connection is made",
"type": "boolean",
"default": false
},
"logfile": {
"description": "log all raw data (input and output) to specified file",
"type": "string",
"default": ""
},
"timestamp": {
"description": "Add timestamps while printing for 'console' type. 'binary' type always prints timestamps",
"type": "boolean",
"default": false
},
"encoding": {
"type": "string",
"description": "How binary data bytes are converted into a number. All little-endian",
"default": "unsigned",
"enum": [
"unsigned",
"signed",
"Q16.16",
"float"
]
},
"iencoding": {
"type": "string",
"description": "How keyboard input is encoded. Cooked mode only",
"default": "utf8",
"enum": [
"ascii",
"utf8",
"ucs2",
"utf16le"
]
},
"scale": {
"default": 1,
"description": "Binary only: This setting will scale the raw value from the ITM port by the specified value. Can be used, for example, to scale a raw n-bit ADC reading to a voltage value. (e.g to scale a 12-bit ADC reading to a 3.3v scale you would need a scale value of 3.3/4096 = 0.0008056640625",
"type": "number"
},
"inputmode": {
"type": "string",
"description": "Experimental: 'disabled' means no stdin. 'raw' and 'rawecho' sends chars as they are typed.\n'rawecho' will echo chars and process RETURN keys. Even CTRL-C CTRL-D are passed on",
"default": "cooked",
"enum": [
"cooked",
"raw",
"rawecho",
"disabled"
]
}
},
"required": [
"port"
],
"type": "object"
},
{
"properties": {
"encoding": {
"default": "unsigned",
"description": "This property is only used for binary and graph output formats.",
"enum": [
"unsigned",
"signed",
"Q16.16",
"float"
],
"type": "string"
},
"graphId": {
"description": "The identifier to use for this data in graph configurations.",
"type": "string"
},
"port": {
"description": "RTT Channel Number",
"maximum": 15,
"minimum": 0,
"type": "number"
},
"scale": {
"default": 1,
"description": "This setting will scale the raw value from the ITM port by the specified value. Can be used, for example, to scale a raw n-bit ADC reading to a voltage value. (e.g to scale a 12-bit ADC reading to a 3.3v scale you would need a scale value of 3.3/4096 = 0.0008056640625",
"type": "number"
},
"type": {
"enum": [
"graph"
],
"type": "string"
}
},
"required": [
"port",
"graphId"
],
"type": "object"
},
{
"properties": {
"config": {
"additionalProperties": true,
"type": "object"
},
"decoder": {
"description": "Path to a javascript module to implement the decoding functionality.",
"type": "string"
},
"ports": {
"description": "RTT Channel Numbers",
"type": "array",
"items": {
"type": "number",
"maximum": 15,
"minimum": 0
}
},
"type": {
"enum": [
"advanced"
],
"type": "string"
}
},
"required": [
"ports",
"decoder"
],
"type": "object"
}
]
},
"type": "array"
}
}
},
"swoConfig": {
"description": "Description of SWO can be configured. Also see our Wiki for details",
"properties": {
"cpuFrequency": {
"default": 0,
"description": "Target CPU frequency in Hz; 0 will attempt to automatically calculate.",
"type": "number"
},
"enabled": {
"default": false,
"description": "Enable SWO decoding.",
"type": "boolean"
},
"source": {
"type": "string",
"enum": [
"probe",
"socket",
"serial",
"file"
],
"default": "probe",
"description": "Source for SWO data. Can either be \"probe\" to get directly from debug probe, or a serial port device to use a serial port external to the debug probe."
},
"swoPath": {
"type": "string",
"default": "",
"description": "Path name when source is \"file\" or \"serial\". Typically a /path-name or a serial-port-name"
},
"swoPort": {
"type": "string",
"default": "",
"description": "When server is \"external\" && source is \"socket\", port to connect to. Format [host:]port"
},
"decoders": {
"description": "SWO Decoder Configuration",
"items": {
"anyOf": [
{
"properties": {
"label": {
"description": "A label for the output window.",
"type": "string"
},
"port": {
"description": "ITM Port Number",
"maximum": 31,
"minimum": 0,
"type": "number"
},
"showOnStartup": {
"description": "If true, switches to this output when starting a debug session.",
"type": "boolean"
},
"timestamp": {
"description": "Add timestamps while printing",
"type": "boolean",
"default": false
},
"type": {
"enum": [
"console"
],
"type": "string"
},
"encoding": {
"type": "string",
"default": "utf8",
"enum": [
"ascii",
"utf8",
"ucs2",
"utf16le"
]
},
"logfile": {
"description": "log all raw data to specified file",
"type": "string",
"default": ""
}
},
"required": [
"port"
],
"type": "object"
},
{
"properties": {
"encoding": {
"default": "unsigned",
"description": "This property is only used for binary and graph output formats.",
"enum": [
"unsigned",
"signed",
"Q16.16",
"float"
],
"type": "string"
},
"label": {
"description": "A label for the output window.",
"type": "string"
},
"port": {
"description": "ITM Port Number",
"maximum": 31,
"minimum": 0,
"type": "number"
},
"scale": {
"default": 1,
"description": "This setting will scale the raw value from the ITM port by the specified value. Can be used, for example, to scale a raw n-bit ADC reading to a voltage value. (e.g to scale a 12-bit ADC reading to a 3.3v scale you would need a scale value of 3.3/4096 = 0.0008056640625",
"type": "number"
},
"type": {
"enum": [
"binary"
],
"type": "string"
},
"logfile": {
"description": "log all raw data to specified file",
"type": "string",
"default": ""
}
},
"required": [
"port"
],
"type": "object"
},
{
"properties": {
"encoding": {
"default": "unsigned",
"description": "This property is only used for binary and graph output formats.",
"enum": [
"unsigned",
"signed",
"Q16.16",
"float"
],
"type": "string"
},
"graphId": {
"description": "The identifier to use for this data in graph configurations.",
"type": "string"
},
"port": {
"description": "ITM Port Number",
"maximum": 31,
"minimum": 0,
"type": "number"
},
"scale": {
"default": 1,
"description": "This setting will scale the raw value from the ITM port by the specified value. Can be used, for example, to scale a raw n-bit ADC reading to a voltage value. (e.g to scale a 12-bit ADC reading to a 3.3v scale you would need a scale value of 3.3/4096 = 0.0008056640625",
"type": "number"
},
"type": {
"enum": [
"graph"
],
"type": "string"
},
"logfile": {
"description": "log all raw data to specified file",
"type": "string",
"default": ""
}
},
"required": [
"port",
"graphId"
],
"type": "object"
},
{
"properties": {
"config": {
"additionalProperties": true,
"type": "object"
},
"decoder": {
"description": "Path to a javascript module to implement the decoding functionality.",
"type": "string"
},
"ports": {
"description": "ITM Port Numbers",
"type": "array",
"items": {
"maximum": 31,
"minimum": 0,
"type": "number"
}
},
"type": {
"enum": [
"advanced"
],
"type": "string"
}
},
"required": [
"ports",
"decoder"
],
"type": "object"
}
]
},
"type": "array"
},
"swoFrequency": {
"default": 0,
"description": "SWO frequency in Hz; 0 will attempt to automatically calculate.",
"type": "number"
}
},
"required": [],
"type": "object"
},
"ipAddress": {
"default": null,
"description": "IP Address for networked J-Link Adapter",
"pattern": "^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$",
"type": "string"
},
"serialNumber": {
"default": null,
"description": "J-Link or ST-LINK Serial Number - only needed if multiple J-Links/ST-LINKs are connected to the computer",
"type": "string"
},
"interface": {
"default": "swd",
"description": "Debug Interface type to use for connections (defaults to SWD) - Used for J-Link, ST-LINK and BMP probes.",
"type": "string",
"enum": [
"swd",
"jtag",
"cjtag"
]
},
"jlinkscript": {
"default": null,
"description": "J-Link script file - optional input file for customizing J-Link actions.",
"type": "string"
},
"openOCDLaunchCommands": {
"default": [],
"description": "OpenOCD command(s) after configuration files are loaded (-c options)",
"items": {
"type": "string"
},
"type": "array"
},
"openOCDPreConfigLaunchCommands": {
"default": [],
"description": "OpenOCD command(s) before configuration files are loaded (-c options)",
"items": {
"type": "string"
},
"type": "array"
},
"configFiles": {
"description": "OpenOCD/PE GDB Server configuration file(s) to use when debugging (OpenOCD -f option)",
"items": {
"type": "string"
},
"type": "array"
},
"searchDir": {
"default": [],
"description": "OpenOCD directories to search for config files and scripts (-s option). If no search directories are specified, it defaults to the configured cwd.",
"items": {
"type": "string"
},
"type": "array"
},
"v1": {
"default": false,
"description": "For st-util only. Set this to true if your debug probe is a ST-Link V1 (for example, the ST-Link on the STM32 VL Discovery is a V1 device). When set to false a ST-Link V2 device is used.",
"type": "boolean"
},
"stlinkPath": {
"default": null,
"description": "Path to the ST-LINK_gdbserver executable. If not set then ST-LINK_gdbserver (ST-LINK_gdbserver.exe on Windows) must be on the system path.",
"type": "string"
},
"stm32cubeprogrammer": {
"default": null,
"description": "This path is normally resolved to the installed STM32CubeIDE or STM32CubeProgrammer but can be overridden here.",
"type": "string"
},
"targetId": {
"description": "On BMP this is the ID number that should be passed to the attach command (defaults to 1); for PyOCD this is the target identifier (only needed for custom hardware)",
"type": ["string", "number"],
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": 1
}
]
},
"boardId": {
"description": "PyOCD Board Identifier. Needed if multiple compatible boards are connected.",
"type": "string"
},
"cmsisPack": {
"description": "Path to a CMSIS-Pack file. Use to add extra device support.",
"type": "string"
},
"BMPGDBSerialPort": {
"type": "string",
"description": "The serial port for the Black Magic Probe GDB Server. On Windows this will be \"COM<num>\", on Linux this will be something similar to /dev/ttyACM0, on OS X something like /dev/cu.usbmodemE2C0C4C6 (do not use tty versions on OS X)"
},
"powerOverBMP": {
"type": "string",
"description": "Power up the board over Black Magic Probe. \"powerOverBMP\" : \"enable\" or \"powerOverBMP\" : \"disable\". If not set it will use the last power state."
}
},
"required": [
"executable"
]
},
"launch": {
"properties": {
"servertype": {
"type": "string",
"description": "GDB Server type - supported types are jlink, openocd, pyocd, pe, stlink, stutil, qemu, bmp and external. For \"external\", [please read our Wiki](https://github.com/Marus/cortex-debug/wiki/External-gdb-server-configuration)",
"enum": [
"jlink",
"openocd",
"pyocd",
"stutil",
"stlink",
"bmp",
"pe",
"qemu",
"external"
]
},
"cwd": {
"description": "Directory to run commands from",
"type": "string"
},
"debuggerArgs": {
"default": [],
"description": "Additional arguments to pass to GDB command line",
"type": "array"
},
"preLaunchCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed at the start of the main launch sequence (immediately after attaching to target)."
},
"postLaunchCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed after the main launch sequence has finished."
},
"preRestartCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed at the beginning of the restart sequence (after interrupting execution)."
},
"postRestartCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed at the end of the restart sequence."
},
"preResetCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed at the beginning of the reset sequence (after interrupting execution). When not defined this will have the same value of preRestartCommands."
},
"postResetCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed at the end of the reset sequence. When not defined this will have the same value of postRestartCommands."
},
"overrideLaunchCommands": {
"default": null,
"type": "array",
"items": "string",
"description": "You can use this to property to override the commands that are normally executed as part of flashing and launching the target. In most cases it is preferable to use preLaunchCommands and postLaunchCommands to customize the GDB launch sequence."
},
"overrideRestartCommands": {
"default": null,
"type": "array",
"items": "string",
"description": "You can use this to property to override the commands that are normally executed as part of restarting the target. In most cases it is preferable to use preRestartCommands and postRestartCommands to customize the GDB restart sequence."
},
"overrideResetCommands": {
"default": null,
"type": "array",
"items": "string",
"description": "You can use this to property to override the commands that are normally executed as part of reset the target. When not defined this will have the same value of overrideRestartCommands. In most cases it is preferable to use preResetCommands and postResetCommands to customize the GDB reset sequence."
},
"postStartSessionCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed at the end of the start sequence, after a debug session has already started and runToEntryPoint is not specified."
},
"postRestartSessionCommands": {
"default": [],
"type": "array",
"items": "string",
"description": "Additional GDB Commands to be executed at the end of the re-start sequence, after a debug session has already started."
},
"overrideGDBServerStartedRegex": {
"description": "You can supply a regular expression (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) in the configuration property to override the output from the GDB Server that is looked for to determine if the GDB Server has started. Under most circumstances this will not be necessary - but could be needed as a result of a change in the output of a GDB Server making it incompatible with cortex-debug. This property has no effect for bmp or external GDB Server types.",
"type": "string",
"default": null
},
"cpu": {
"default": "cortex-m3",
"type": "string",
"description": "CPU Type Selection - used for QEMU server type",
"enum": [
"cortex-m3",
"cortex-m4"
]
},
"machine": {
"default": "lm3s811evb",
"type": "string",
"description": "Machine Type Selection - used for QEMU server type",
"enum": [
"lm3s811evb",
"lm3s6965evb"
]
},
"device": {
"default": "",
"description": "Target Device Identifier",
"type": "string"
},
"rtos": {
"default": null,
"description": "RTOS being used. For JLink this can be Azure, ChibiOS, embOS, FreeRTOS, NuttX, Zephyr or the path to a custom JLink RTOS Plugin library. For OpenOCD this can be auto (recommended), FreeRTOS, ThreadX, chibios, Chromium-EC, eCos, embKernel, linux, mqx, nuttx, RIOT, uCOS-III, or Zephyr.",
"type": "string"
},
"armToolchainPath": {
"default": null,
"description": "This setting can be used to override the armToolchainPath user setting for a particular launch configuration. This should be the path where arm-none-eabi-gdb, arm-none-eabi-objdump and arm-none-eabi-nm are located.",
"type": "string"
},
"toolchainPrefix": {
"default": null,
"description": "This setting can be used to override the toolchainPrefix user setting for a particular launch configuration. Default = \"arm-none-eabi\"",
"type": "string"
},
"serverpath": {
"default": null,
"description": "This setting can be used to override the GDB Server path user/workspace setting for a particular launch configuration. It is the full pathname to the executable or name of executable if it is in your PATH",
"type": "string"
},
"gdbPath": {
"default": null,
"description": "This setting can be used to override the GDB path user/workspace setting for a particular launch configuration. This should be the full pathname to the executable (or name of the executable if it is in your PATH). Note that other toolchain executables with the configured prefix must still be available.",
"type": "string"
},
"objdumpPath": {
"default": null,
"description": "This setting can be used to override the objdump (used to find globals/statics) path user/workspace setting for a particular launch configuration. This should be the full pathname to the executable (or name of the executable if it is in your PATH). Note that other toolchain executables with the configured prefix must still be available. The program 'nm' is also expected alongside",
"type": "string"
},
"serverArgs": {
"default": [],
"description": "Additional arguments to pass to GDB Server command line",
"type": "array",
"items": "string"
},
"executable": {
"description": "Path of executable for symbols and program information. See also `loadFiles`, `symbolFiles`",
"type": "string"
},
"loadFiles": {
"description": "List of files (hex/bin/elf files) to load/program instead of the executable file. Symbols are not loaded (see `symbolFiles`). Can be an empty list to specify none. If this property does not exist, then the executable is used to program the device",
"type": "array",
"items": "string",
"default": null
},
"symbolFiles": {
"description": "Array of ELF files to load symbols from instead of the executable file. Each item in the array cab be a string or an object. Program information is ignored (see `loadFiles`). Can be an empty list to specify none. If this property does not exist, then the executable is used for symbols",
"type": "array",
"items": {
"type": ["object", "string"],
"properties": {
"file": {
"type": "string",
"description": "Pathname of an ELF file for symbols"
},
"offset": {
"type": [
"number",
"string"
],
"description": "Optional offset to apply to all sections of the ELF file. Use a string strarting with '0x' for a hexadecimal number"
},
"textaddress": {
"type": [
"number",
"string"
],
"description": "Optional: Load the TEXT section at the specified 'textaddress'. Use a string strarting with '0x' for a hexadecimal number"
},
"sections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Section name"
},
"address": {
"type": [
"number",
"string"
],
"description": "Base address for section. Use a string strarting with '0x' for a hexadecimal number"
}
},
"required": [
"name",
"address"
]
}
}
},
"required": [
"file"
]
},
"default": null
},
"gdbTarget": {
"default": null,
"description": "For externally (servertype = \"external\") controlled GDB Servers you must specify the GDB target to connect to. This can either be a \"hostname:port\" combination or path to a serial port",
"type": "string"
},
"runToMain": {
"description": "Deprecated: please use 'runToEntryPoint' instead.",
"type": "boolean",
"default": false,
"deprecated": true
},
"breakAfterReset": {
"default": false,
"type": "boolean",
"description": "Applies to Restart/Reset/Launch, halt debugger after a reset. Ignored if `runToEntryPoint` is used."
},
"runToEntryPoint": {
"description": "Applies to Launch/Restart/Reset, ignored for Attach. If enabled the debugger will run until the start of the given function.",
"type": "string",
"default": "main"
},
"numberOfProcessors": {
"description": "Number of processors/cores in the target device.",
"type": "number",
"multipleOf": 1,
"minimum": 1,
"maximum": 10,
"default": 1
},
"targetProcessor": {
"description": "The processor you want to debug. Zero based integer index. Must be less than 'numberOfProcessors'",
"type": "number",
"multipleOf": 1,
"minimum": 0,
"maximum": 9,
"default": 0
},
"liveWatch": {
"description": "An object with parameters for Live Watch",
"properties": {
"enabled": {
"default": false,
"description": "Enable/Disable Live Watch. Only applies to OpenOCD",
"type": "boolean"
},
"samplesPerSecond": {
"default": 2,
"description": "Maximum number of samples per second. Different from GUI refresh-rate, which is a user/workspace setting",
"type": "number",
"multipleOf": 1,
"minimum": 0,
"maximum": 20
}
},
"default": {
"enabled": true,
"samplesPerSecond": 4
}
},
"ctiOpenOCDConfig": {
"description": "Experimental. Does not work yet",
"properties": {
"enabled": {
"default": true,
"description": "Enable/Disable Cross Trigger Interface/Matrix for synchronized pause/resume",
"type": "boolean"
},
"initCommands": {
"default": [],
"description": "List of OpenOCD TCL commands to initialize the CTI/CTM infrastructure (if any)",
"type": "array",
"items": {
"type": "string"
}
},
"pauseCommands": {
"default": [],
"description": "List of OpenOCD TCL commands to pause all processors",
"type": "array",
"items": {
"type": "string"
}
},
"resumeCommands": {
"default": [],
"description": "List of OpenOCD TCL commands to resume all processors",
"type": "array",
"items": {
"type": "string"
}
}
},
"default": {
"enabled": true,
"pauseCommands": [],
"resumeCommands": []
}
},
"chainedConfigurations": {
"description": "An object describing how additional configurations should be launched",
"properties": {
"enabled": {
"default": true,
"description": "Enable/Disable entire set of chained configurations",
"type": "boolean"
},
"detached": {
"default": false,
"description": "Related or independent server sessions. Set to true for servers like 'JLink'. Inherited by children",
"type": "boolean"
},
"lifecycleManagedByParent": {
"default": true,
"description": "Are Restart/Reset/Stop/Disconnect shared? All life-cycle management done as a group by parent/root. Inherited by children",
"type": "boolean"
},
"waitOnEvent": {
"enum": [
"postStart",
"postInit"
],
"default": "postInit",
"description": "Event to wait for. 'postStart' means wait for gdb-server connecting, 'postInit' is after init commands are completed by gdb. Inherited by children",
"type": "string"
},
"delayMs": {
"type": "number",
"description": "Default delay in milliseconds for a certain amount of milliseconds to begin launch. Inherited by children",
"multipleOf": 1,
"minimum": 0,
"default": 5
},
"overrides": {
"default": {},
"description": "Values to override/set in this child configuration. A set of name/value pairs. Set value to 'null' (no quotes) to delete. Sorry, no IntelliSense",
"type": "object"
},
"inherits": {
"default": [],
"description": "List of properties to inherit from parent. Sorry, no IntelliSense",
"type": "array",
"items": {
"type": "string"
}
},
"launches": {
"type": "array",
"items": {
"properties": {
"name": {
"default": "",
"description": "Name of launch configuration. Sorry, no IntelliSense",
"type": "string"
},
"folder": {
"default": "",
"description": "Folder to use for this configuration. Where .vscode/launch.json exists. Default is same folder as parent. Use either the full path name or the base-name of the folder",
"type": "string"
},
"enabled": {
"default": true,
"description": "Enable/Disable this configuration",
"type": "boolean"
},
"detached": {
"default": false,
"description": "Related or independent server sessions. Set to true for servers like 'JLink'",
"type": "boolean"
},
"waitOnEvent": {
"enum": [
"postStart",
"postInit"
],
"default": "postInit",
"description": "Wait for an event. 'postStart' means wait for gdb-server connecting, 'postInit' is after init commands are completed by gdb",
"type": "string"
},
"delayMs": {
"type": "number",
"description": "Delay in milliseconds for a certain amount of milliseconds to begin launch",
"multipleOf": 1,
"minimum": 0,
"default": 5
},
"lifecycleManagedByParent": {
"default": true,
"description": "Are Restart/Reset/Stop/Disconnect shared? All life-cycle management done as a group by parent/root",
"type": "boolean"
},
"overrides": {
"default": {},
"description": "Values to override/set in this child configuration. A set of name/value pairs. Set value to 'null' (no quotes) to delete. Sorry, no IntelliSense",
"type": "object"
},
"inherits": {
"default": [],
"description": "List of properties to inherit from parent. Sorry, no IntelliSense",
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"default": {
"enabled": true,
"waitOnEvent": "postInit",
"lifeCycleShared": true,
"launches": [
{
"name": "use EXACT name of chained configuration to launch",
"folder": "use full path or folder basename or leave empty"
}
]
}
},
"graphConfig": {
"description": "Description of how graphing can be done. See our Wiki for details",
"items": {
"oneOf": [
{
"properties": {
"annotate": {
"default": true,
"description": "Create annotations on the graph for when the target processor starts and stops execution. (green line for starting execution, red line for stopping execution).",
"type": "boolean"
},
"label": {
"description": "Label for Graph",
"type": "string"
},
"maximum": {
"default": 65535,
"description": "Maximum value for the X-Axis",
"type": "number"
},
"minimum": {
"default": 0,
"description": "Minimum value for the Y-Axis",
"type": "number"
},
"plots": {
"description": "Plot configurations. Data sources must be configured for \"graph\" (or \"advanced\" with a decoder that sends graph data) in the \"swoConfig\" section",
"items": {
"properties": {
"color": {
"pattern": "^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$",
"type": "string"
},
"graphId": {
"description": "Graph Data Source Id for the plot.",
"type": "string"
},
"label": {
"description": "A label for this data set",
"type": "string"
}
},
"required": [
"graphId"
],
"type": "object"
},
"type": "array"
},
"timespan": {
"default": 30,
"description": "Length of time (seconds) to be plotted on screen.",
"type": "number"
},
"type": {
"enum": [
"realtime"
],
"type": "string"
}
},
"required": [
"label",
"plots",
"minimum",
"maximum"
],
"type": "object"
},
{
"properties": {
"label": {
"description": "Label for graph",
"type": "string"
},
"timespan": {
"default": 10,
"description": "The amount of time (seconds) that the XY Plot will show the trace for.",
"type": "number"
},
"type": {
"enum": [
"x-y-plot"
],
"type": "string"
},
"xGraphId": {
"description": "Graph Data Source Id for the X axis",
"type": "string"
},
"xMaximum": {
"default": 65535,
"description": "Maximum value on the X-Axis",
"type": "number"
},
"xMinimum": {
"default": 0,
"description": "Minimum value on the X-Axis",
"type": "number"
},
"yGraphId": {
"description": "Graph Data Source Id Port for the Y axis",
"type": "string"
},
"yMaximum": {
"default": 65535,
"description": "Maximum value on the Y-Axis",
"type": "number"
},
"yMinimum": {
"default": 0,
"description": "Minimum value on the Y-Axis",
"type": "number"
}
},
"required": [
"xGraphId",
"yGraphId",
"label"
],
"type": "object"
}
]
},
"type": "array"
},
"showDevDebugOutput": {
"enum": [
"none",
"parsed",
"raw",
"both",
"vscode"
],
"default": "none",
"description": "Used to debug this extension. Prints all GDB responses to the console. 'raw' prints gdb responses, 'parsed' prints results after parsing, 'both' prints both. 'vscode' shows raw and VSCode interactions",
"type": "string"
},
"showDevDebugTimestamps": {
"default": false,
"description": "Show timestamps when 'showDevDebugOutput' is enabled",
"type": "boolean"
},
"svdFile": {
"default": null,
"description": "This is for 'XPERIPHERALS' window provided by 'mcu-debug.peripheral-viewer'. It can be a simple file name or more based on a CMSIS pack or deviceName. See 'mcu-debug.peripheral-viewer' for format",
"type": "string"
},
"svdPath": {
"default": null,
"description": "This is for 'XPERIPHERALS' window provided by 'mcu-debug.peripheral-viewer' and 'Embedded Tools' Extension from Microsoft. It can be a simple file name. For 'mcu-debug.peripheral-viewer' or more based on a CMSIS pack or deviceName. See 'mcu-debug.peripheral-viewer' for format",
"type": "string"
},
"rttConfig": {
"type": "object",
"description": "SEGGER's Real Time Trace (RTT) and supported by JLink, OpenOCD and perhaps others in the future",
"default": {
"enabled": true,
"address": "auto",
"decoders": [
{
"label": "",
"port": 0,
"type": "console"
}
]
},
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable/Disable RTT",
"default": false
},
"address": {
"type": "string",
"description": "Address to start searching for the RTT control block. Use \"auto\" for Cortex-Debug to use the address from elf file",
"default": "auto"
},
"searchSize": {
"type": "number",
"description": "Number of bytes to search for the RTT control block. If 'address' is 'auto', use ONLY if you have a custom RTT implementation",
"multipleOf": 1,
"minimum": 16,
"default": 16
},
"searchId": {
"type": "string",
"description": "A string to search for to find the RTT control block. If 'address' is 'auto', use ONLY if you have a custom RTT implementation",
"default": "SEGGER RTT"
},
"polling_interval": {
"type": "number",
"description": "number of milliseconds (> 0) to wait for check for data on out channels. Only for OpenOCD",
"default": 0,
"minimum": 1
},
"rtt_start_retry": {
"type": "number",
"description": "Keep trying to start RTT for OpenOCD until it succeeds with given internal in milliseconds. <= 0 means do not retry. Only for OpenOCD",
"default": 1000,
"minimum": 0
},
"clearSearch": {
"type": "boolean",
"description": "When true, clears the search-string. Only applicable when address is \"auto\"",
"default": true
},
"decoders": {
"description": "SWO Decoder Configuration",
"items": {
"anyOf": [
{
"properties": {
"label": {
"description": "A label for RTT Console",
"type": "string"
},
"port": {
"description": "RTT Channel Number (0 to 15)",
"default": 0,
"maximum": 15,
"minimum": 0,
"multipleOf": 1,
"type": "number"
},
"type": {
"enum": [
"console",
"binary"
],
"default": "console",
"description": "'console' with text input/output, 'binary' is for converting byte stream to other data types",
"type": "string"
},
"prompt": {
"description": "Prompt to use for RTT Console",
"type": "string",
"default": ""
},
"noprompt": {
"description": "Don't use a prompt for RTT Console",
"type": "boolean",
"default": false
},
"noclear": {
"description": "append to screen/logfile when another connection is made",
"type": "boolean",
"default": false
},
"logfile": {
"description": "log all raw data (input and output) to specified file",
"type": "string",
"default": ""
},
"timestamp": {
"description": "Add timestamps while printing for 'console' type. 'binary' type always prints timestamps",
"type": "boolean",
"default": false
},
"encoding": {
"type": "string",
"description": "How binary data bytes are converted into a number. All little-endian",
"default": "unsigned",
"enum": [
"unsigned",
"signed",
"Q16.16",
"float"
]
},
"iencoding": {
"type": "string",
"description": "How keyboard input is encoded Cooked mode only",
"default": "utf8",
"enum": [
"ascii",
"utf8",
"ucs2",
"utf16le"
]
},
"scale": {
"default": 1,
"description": "Binary only: This setting will scale the raw value from the ITM port by the specified value. Can be used, for example, to scale a raw n-bit ADC reading to a voltage value. (e.g to scale a 12-bit ADC reading to a 3.3v scale you would need a scale value of 3.3/4096 = 0.0008056640625",
"type": "number"
},
"inputmode": {
"type": "string",
"description": "Experimental: 'disabled' means no stdin. 'raw' and 'rawecho' sends chars as they are typed.\n'rawecho' will echo chars and process RETURN keys. Even CTRL-C CTRL-D are passed on",
"default": "cooked",
"enum": [
"cooked",
"raw",
"rawecho",
"disabled"
]
}
},
"required": [
"port"
],
"type": "object"
},
{
"properties": {
"encoding": {
"default": "unsigned",
"description": "This property is only used for binary and graph output formats.",
"enum": [
"unsigned",
"signed",
"Q16.16",
"float"
],
"type": "string"
},
"graphId": {
"description": "The identifier to use for this data in graph configurations.",
"type": "string"
},
"port": {
"description": "RTT Channel Number",
"maximum": 15,
"minimum": 0,
"type": "number"
},
"scale": {
"default": 1,
"description": "This setting will scale the raw value from the ITM port by the specified value. Can be used, for example, to scale a raw n-bit ADC reading to a voltage value. (e.g to scale a 12-bit ADC reading to a 3.3v scale you would need a scale value of 3.3/4096 = 0.0008056640625",
"type": "number"
},
"type": {
"enum": [
"graph"
],
"type": "string"
}
},
"required": [
"port",
"graphId"
],
"type": "object"
},
{
"properties": {
"config": {
"additionalProperties": true,
"type": "object"
},
"decoder": {
"description": "Path to a javascript module to implement the decoding functionality.",
"type": "string"
},
"ports": {
"description": "RTT Channel Numbers",
"type": "array",
"items": {
"type": "number",
"maximum": 15,
"minimum": 0
}
},
"type": {
"enum": [
"advanced"
],
"type": "string"
}
},
"required": [
"ports",
"decoder"
],
"type": "object"
}
]
},
"type": "array"
}
}
},
"swoConfig": {
"description": "Description of SWO can be configured. Also see our Wiki for details",
"properties": {
"cpuFrequency": {
"default": 0,
"description": "Target CPU frequency in Hz.",
"type": "number"
},
"enabled": {
"default": false,
"description": "Enable SWO decoding.",
"type": "boolean"
},
"source": {
"type": "string",
"enum": [
"probe",
"socket",
"serial",
"file"
],
"default": "probe",
"description": "Source for SWO data. Can either be \"probe\" to get directly from debug probe, or a serial port device to use a serial port external to the debug probe."
},
"swoPath": {
"type": "string",
"default": "",
"description": "Path name when source is \"file\" or \"serial\". Typically a /path-name or a serial-port-name"
},
"swoPort": {
"type": "string",
"default": "",
"description": "When server is \"external\" && source is \"socket\", port to connect to. Format [host:]port"
},
"decoders": {
"description": "SWO Decoder Configuration",
"items": {
"anyOf": [
{
"properties": {
"label": {
"description": "A label for the output window.",
"type": "string"
},
"port": {
"description": "ITM Port Number",
"maximum": 31,
"minimum": 0,
"type": "number"
},
"showOnStartup": {
"description": "If true, switches to this output when starting a debug session.",
"type": "boolean"
},
"timestamp": {
"description": "Add timestamps while printing",
"type": "boolean",
"default": false
},
"type": {
"enum": [
"console"
],
"type": "string"
},
"encoding": {
"type": "string",
"default": "utf8",
"enum": [
"ascii",
"utf8",
"ucs2",
"utf16le"
]
},
"logfile": {
"description": "log all raw data to specified file",
"type": "string",
"default": ""
}
},
"required": [
"port"
],
"type": "object"
},
{
"properties": {
"encoding": {
"default": "unsigned",
"description": "This property is only used for binary and graph output formats.",
"enum": [
"unsigned",
"signed",
"Q16.16",
"float"
],
"type": "string"
},
"label": {
"description": "A label for the output window.",
"type": "string"
},
"port": {
"description": "ITM Port Number",
"maximum": 31,
"minimum": 0,
"type": "number"
},
"scale": {
"default": 1,
"description": "This setting will scale the raw value from the ITM port by the specified value. Can be used, for example, to scale a raw n-bit ADC reading to a voltage value. (e.g to scale a 12-bit ADC reading to a 3.3v scale you would need a scale value of 3.3/4096 = 0.0008056640625",
"type": "number"
},
"type": {
"enum": [
"binary"
],
"type": "string"
},
"logfile": {
"description": "log all raw data to specified file",
"type": "string",
"default": ""
}
},
"required": [
"port"
],
"type": "object"
},
{
"properties": {
"encoding": {
"default": "unsigned",
"description": "This property is only used for binary and graph output formats.",
"enum": [
"unsigned",
"signed",
"Q16.16",
"float"
],
"type": "string"
},
"graphId": {
"description": "The identifier to use for this data in graph configurations.",
"type": "string"
},
"port": {
"description": "ITM Port Number",
"maximum": 31,
"minimum": 0,
"type": "number"
},
"scale": {
"default": 1,
"description": "This setting will scale the raw value from the ITM port by the specified value. Can be used, for example, to scale a raw n-bit ADC reading to a voltage value. (e.g to scale a 12-bit ADC reading to a 3.3v scale you would need a scale value of 3.3/4096 = 0.0008056640625",
"type": "number"
},
"type": {
"enum": [
"graph"
],
"type": "string"
},
"logfile": {
"description": "log all raw data to specified file",
"type": "string",
"default": ""
}
},
"required": [
"port",
"graphId"
],
"type": "object"
},
{
"properties": {
"config": {
"additionalProperties": true,
"type": "object"
},
"decoder": {
"description": "Path to a javascript module to implement the decoding functionality.",
"type": "string"
},
"ports": {
"description": "ITM Port Numbers",
"type": "array",
"items": {
"type": "number",
"maximum": 31,
"minimum": 0
}
},
"type": {
"enum": [
"advanced"
],
"type": "string"
}
},
"required": [
"ports",
"decoder"
],
"type": "object"
}
]
},
"type": "array"
},
"swoFrequency": {
"default": 0,
"description": "SWO frequency in Hz.",
"type": "number"
}
},
"required": [],
"type": "object"
},
"ipAddress": {
"default": null,
"description": "IP Address for networked J-Link Adapter",
"pattern": "^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$",
"type": "string"
},
"serialNumber": {
"default": null,
"description": "J-Link or ST-LINK Serial Number - only needed if multiple J-Links/ST-LINKs are connected to the computer",
"type": "string"
},
"interface": {
"default": "swd",
"description": "Debug Interface type to use for connections (defaults to SWD) - Used for J-Link, ST-LINK and BMP probes.",
"type": "string",
"enum": [
"swd",
"jtag",
"cjtag"
]
},
"jlinkscript": {
"default": null,
"description": "J-Link script file - optional input file for customizing J-Link actions.",
"type": "string"
},
"openOCDLaunchCommands": {
"default": [],
"description": "OpenOCD command(s) after configuration files are loaded (-c options)",
"items": {
"type": "string"
},
"type": "array"
},
"openOCDPreConfigLaunchCommands": {
"default": [],
"description": "OpenOCD command(s) before configuration files are loaded (-c options)",
"items": {
"type": "string"
},
"type": "array"
},
"configFiles": {
"description": "OpenOCD/PE GDB Server configuration file(s) to use when debugging (OpenOCD -f option)",
"items": {
"type": "string"
},
"type": "array"
},
"searchDir": {
"default": [],
"description": "OpenOCD directories to search for config files and scripts (-s option). If no search directories are specified, it defaults to the configured cwd.",
"items": {
"type": "string"
},
"type": "array"
},
"v1": {
"default": false,
"description": "For st-util only. Set this to true if your debug probe is a ST-Link V1 (for example, the ST-Link on the STM32 VL Discovery is a V1 device). When set to false a ST-Link V2 device is used.",
"type": "boolean"
},
"stlinkPath": {
"default": null,
"description": "Path to the ST-LINK_gdbserver executable. If not set then ST-LINK_gdbserver (ST-LINK_gdbserver.exe on Windows) must be on the system path.",
"type": "string"
},
"stm32cubeprogrammer": {
"default": null,
"description": "This path is normally resolved to the installed STM32CubeIDE or STM32CubeProgrammer but can be overridden here.",
"type": "string"
},
"targetId": {
"description": "On BMP this is the ID number that should be passed to the attach command (defaults to 1); for PyOCD this is the target identifier (only needed for custom hardware)",
"type": ["string", "number"],
"anyOf": [
{
"type": "string"
},
{
"type": "number",
"minimum": 1
}
]
},
"boardId": {
"description": "PyOCD Board Identifier. Needed if multiple compatible boards are connected.",
"type": "string"
},
"cmsisPack": {
"description": "Path to a CMSIS-Pack file. Use to add extra device support.",
"type": "string"
},
"BMPGDBSerialPort": {
"type": "string",
"description": "The serial port for the Black Magic Probe GDB Server. On Windows this will be \"COM<num>\", on Linux this will be something similar to /dev/ttyACM0, on OS X something like /dev/cu.usbmodemE2C0C4C6 (do not use tty versions on OS X)"
},
"powerOverBMP": {
"type": "string",
"description": "Power up the board over Black Magic Probe. \"powerOverBMP\" : \"enable\" or \"powerOverBMP\" : \"disable\". If not set it will use the last power state."
}
},
"required": [
"executable"
]
}
},
"configurationSnippets": [
{
"body": {
"cwd": "^\"\\${workspaceFolder}\"",
"executable": "${1:./bin/executable.elf}",
"name": "${6:Debug with JLink}",
"request": "launch",
"type": "cortex-debug",
"device": "",
"runToEntryPoint": "main",
"showDevDebugOutput": "none",
"servertype": "jlink"
},
"description": "Debugs an embedded ARM Cortex-M microcontroller using GDB + JLink",
"label": "Cortex Debug: JLink"
},
{
"body": {
"cwd": "^\"\\${workspaceRoot}\"",
"executable": "${1:./bin/executable.elf}",
"name": "${6:Debug with OpenOCD}",
"request": "launch",
"type": "cortex-debug",
"servertype": "openocd",
"configFiles": [],
"searchDir": [],
"runToEntryPoint": "main",
"showDevDebugOutput": "none"
},
"description": "Debugs an embedded ARM Cortex-M microcontroller using GDB + OpenOCD",
"label": "Cortex Debug: OpenOCD"
},
{
"body": {
"cwd": "^\"\\${workspaceFolder}\"",
"executable": "${1:./bin/executable.elf}",
"name": "${6:Debug with ST-Link}",
"request": "launch",
"type": "cortex-debug",
"runToEntryPoint": "main",
"showDevDebugOutput": "none",
"servertype": "stlink"
},
"description": "Debugs an embedded ARM Cortex-M microcontroller using GDB + STMicroelectronic's ST-LINK_gdbserver part of STM32CubeIDE",
"label": "Cortex Debug: ST-LINK"
},
{
"body": {
"cwd": "^\"\\${workspaceFolder}\"",
"executable": "${1:./bin/executable.elf}",
"name": "${6:Debug with PyOCD}",
"request": "launch",
"type": "cortex-debug",
"runToEntryPoint": "main",
"showDevDebugOutput": "none",
"servertype": "pyocd"
},
"description": "Debugs an embedded ARM Cortex-M microcontroller using GDB + PyOCD",
"label": "Cortex Debug: PyOCD"
},
{
"body": {
"cwd": "^\"\\${workspaceFolder}\"",
"executable": "${1:./bin/executable.elf}",
"name": "${6:Debug with ST-Util}",
"request": "launch",
"type": "cortex-debug",
"runToEntryPoint": "main",
"showDevDebugOutput": "none",
"servertype": "stutil"
},
"description": "Debugs an embedded ARM Cortex-M microcontroller using GDB + Texane's st-util GDB Server (https://github.com/texane/stlink)",
"label": "Cortex Debug: ST-Util"
}
],
"label": "Cortex Debug",
"program": "./dist/debugadapter.js",
"runtime": "node",
"type": "cortex-debug",
"variables": {},
"languages": [
"c",
"cpp",
"rust"
]
}
],
"menus": {
"commandPalette": [
{
"command": "cortex-debug.examineMemory",
"when": "debugType == cortex-debug"
},
{
"command": "cortex-debug.examineMemoryLegacy",
"when": "debugType == cortex-debug"
},
{
"command": "cortex-debug.resetDevice",
"when": "debugType == cortex-debug"
},
{
"command": "cortex-debug.toggleVariableHexFormat",
"when": "debugType == cortex-debug"
},
{
"command": "cortex-debug.liveWatch.addExpr",
"when": "debugType === cortex-debug"
}
],
"debug/toolBar": [
{
"command": "cortex-debug.resetDevice",
"group": "navigation",
"when": "debugType == cortex-debug"
}
],
"view/item/context": [
{
"command": "cortex-debug.liveWatch.editExpr",
"when": "view == cortex-debug.liveWatch && viewItem == expression",
"group": "inline"
},
{
"command": "cortex-debug.liveWatch.moveUp",
"when": "view == cortex-debug.liveWatch && viewItem == expression",
"group": "inline"
},
{
"command": "cortex-debug.liveWatch.moveDown",
"when": "view == cortex-debug.liveWatch && viewItem == expression",
"group": "inline"
},
{
"command": "cortex-debug.liveWatch.removeExpr",
"when": "view == cortex-debug.liveWatch && viewItem == expression",
"group": "inline"
}
],
"view/title": [
{
"command": "cortex-debug.liveWatch.addExpr",
"when": "view == cortex-debug.liveWatch",
"group": "navigation"
},
{
"command": "cortex-debug.varHexModeTurnOn",
"when": "view == workbench.debug.variablesView && inDebugMode && debugType == 'cortex-debug' && debugState == stopped && cortex-debug:variableUseNaturalFormat",
"group": "navigation"
},
{
"command": "cortex-debug.varHexModeTurnOff",
"when": "view == workbench.debug.variablesView && inDebugMode && debugType == 'cortex-debug' && debugState == stopped && !cortex-debug:variableUseNaturalFormat",
"group": "navigation"
},
{
"command": "cortex-debug.varHexModeTurnOn",
"when": "view == workbench.debug.watchExpressionsView && inDebugMode && debugType == 'cortex-debug' && debugState == stopped && cortex-debug:variableUseNaturalFormat",
"group": "navigation"
},
{
"command": "cortex-debug.varHexModeTurnOff",
"when": "view == workbench.debug.watchExpressionsView && inDebugMode && debugType == 'cortex-debug' && debugState == stopped && !cortex-debug:variableUseNaturalFormat",
"group": "navigation"
},
{
"command": "cortex-debug.varHexModeTurnOn",
"when": "view == cortex-debug.liveWatch && inDebugMode && debugType == 'cortex-debug' && debugState == stopped && cortex-debug:variableUseNaturalFormat",
"group": "navigation"
},
{
"command": "cortex-debug.varHexModeTurnOff",
"when": "view == cortex-debug.liveWatch && inDebugMode && debugType == 'cortex-debug' && debugState == stopped && !cortex-debug:variableUseNaturalFormat",
"group": "navigation"
}
],
"debug/variables/context": [
{
"command": "cortex-debug.liveWatch.addToLiveWatch",
"when": "inDebugMode && debugType == 'cortex-debug' && debugState == stopped",
"group": "navigation"
}
]
},
"views": {
"debug": [
{
"id": "cortex-debug.liveWatch",
"name": "Cortex Live Watch",
"when": "debugType == cortex-debug"
}
]
}
},
"dependencies": {
"@vscode/extension-telemetry": "^0.4.7",
"@vscode/webview-ui-toolkit": "^1.1.0",
"binary-parser": "^2.2.1",
"bindings": "^1.5.0",
"command-exists": "^1.2.9",
"commander": "^2.20.3",
"d3": "^7.6.1",
"debug": "^4.3.1",
"hasbin": "^1.2.3",
"json-stream-stringify": "^2.0.4",
"nan": "^2.14.2",
"node-interval-tree": "^1.3.3",
"prebuild-install": "^7.0.1",
"ringbufferjs": "^1.1.0",
"safe-buffer": "^5.2.1",
"stream-json": "^1.7.3",
"tmp": "^0.2.1",
"universal-analytics": "^0.5.3",
"uuid": "^8.3.2",
"vscode-jsonrpc": "^6.0.0"
},
"description": "ARM Cortex-M GDB Debugger support for VSCode",
"devDependencies": {
"@types/binary-parser": "^1.5.1",
"@types/mocha": "^5.2.7",
"@types/node": "16.x",
"@types/vscode": "^1.69.0",
"@vscode/debugadapter": "^1.59.0",
"@vscode/debugprotocol": "^1.59.0",
"@vscode/test-electron": "^2.1.3",
"mocha": "^9.1.3",
"ts-loader": "^9.2.6",
"tslint": "^5.12.1",
"typescript": "^4.7.4",
"typescript-tslint-plugin": "^1.0.2",
"webpack": "^5.76.0",
"webpack-cli": "^4.9.1"
},
"displayName": "Cortex-Debug",
"engines": {
"vscode": "^1.69.0"
},
"icon": "images/icon.png",
"keywords": [
"cortex-m",
"gdb",
"debug",
"embedded"
],
"extensionDependencies": [
"mcu-debug.debug-tracker-vscode",
"mcu-debug.memory-view",
"mcu-debug.rtos-views",
"mcu-debug.peripheral-viewer"
],
"main": "./dist/extension.js",
"name": "cortex-debug",
"publisher": "marus25",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/Marus/cortex-debug.git"
},
"bugs": {
"url": "https://github.com/Marus/cortex-debug/issues"
},
"scripts": {
"vscode:prepublish": "npm run lint && webpack --mode production && node dist/docgen.js",
"watch": "webpack --mode development --watch",
"compile": "webpack --mode development && node dist/docgen.js",
"test-compile": "tsc -p ./",
"package": "node ./release.js --package",
"publish": "node ./release.js --publish --vsx-also",
"lint": "./node_modules/tslint/bin/tslint --project ."
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。