{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "inputs": [
        {
            "id": "BLACKMAGIC",
            "type": "command",
            "command": "shellCommand.execute",
            "args": {
                "useSingleResult": true,
                "env": {
                    "PATH": "${workspaceFolder};${env:PATH}"
                },
                "command": "./fbt get_blackmagic",
                "description": "Get Blackmagic device",
            }
        }
    ],
    "configurations": [
        {
            "name": "Attach FW (ST-Link)",
            "cwd": "${workspaceFolder}",
            "executable": "./build/latest/firmware.elf",
            "request": "attach",
            "type": "cortex-debug",
            "servertype": "openocd",
            "device": "stlink",
            "svdFile": "./debug/STM32WB55_CM4.svd",
            // If you're debugging early in the boot process, before OS scheduler is running,
            // you have to comment out the following line.
            "rtos": "FreeRTOS",
            "configFiles": [
                "interface/stlink.cfg",
                "./debug/stm32wbx.cfg",
            ],
            "postAttachCommands": [
                // "compare-sections",
                "source debug/flipperapps.py",
                "fap-set-debug-elf-root build/latest/.extapps",
                // "source debug/FreeRTOS/FreeRTOS.py",
                // "svd_load debug/STM32WB55_CM4.svd"
            ]
            // "showDevDebugOutput": "raw",
        },
        {
            "name": "Attach FW (blackmagic)",
            "cwd": "${workspaceFolder}",
            "executable": "./build/latest/firmware.elf",
            "request": "attach",
            "type": "cortex-debug",
            "servertype": "external",
            "gdbTarget": "${input:BLACKMAGIC}",
            "svdFile": "./debug/STM32WB55_CM4.svd",
            "rtos": "FreeRTOS",
            "postAttachCommands": [
                "monitor swdp_scan",
                "attach 1",
                "set confirm off",
                "set mem inaccessible-by-default off",
                "source debug/flipperapps.py",
                "fap-set-debug-elf-root build/latest/.extapps",
                // "compare-sections",
            ]
            // "showDevDebugOutput": "raw",
        },
        {
            "name": "Attach FW (JLink)",
            "cwd": "${workspaceFolder}",
            "executable": "./build/latest/firmware.elf",
            "request": "attach",
            "type": "cortex-debug",
            "servertype": "jlink",
            "interface": "swd",
            "device": "STM32WB55RG",
            "svdFile": "./debug/STM32WB55_CM4.svd",
            "rtos": "FreeRTOS",
            "postAttachCommands": [
                "source debug/flipperapps.py",
                "fap-set-debug-elf-root build/latest/.extapps",
            ]
            // "showDevDebugOutput": "raw",
        },
        {
            "name": "Attach FW (DAP)",
            "cwd": "${workspaceFolder}",
            "executable": "./build/latest/firmware.elf",
            "request": "attach",
            "type": "cortex-debug",
            "servertype": "openocd",
            "device": "cmsis-dap",
            "svdFile": "./debug/STM32WB55_CM4.svd",
            "rtos": "FreeRTOS",
            "configFiles": [
                "interface/cmsis-dap.cfg",
                "./debug/stm32wbx.cfg",
            ],
            "postAttachCommands": [
                "source debug/flipperapps.py",
                "fap-set-debug-elf-root build/latest/.extapps",
            ],
            // "showDevDebugOutput": "raw",
        },
        {
            "name": "fbt debug",
            "type": "python",
            "request": "launch",
            "program": "./lib/scons/scripts/scons.py",
            "args": [
                "plugin_dist"
            ]
        },
        {
            "name": "python debug",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "args": []
        }
    ]
}