{
  // 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",
  "configurations": [
    {
      "name": "GStreamer - Build and debug",
      "request": "launch",
      "type": "cppdbg",
      "windows": {
        "type": "cppvsdbg",
        "program": "gst-launch-1.0.exe",
        "envFile": "${workspaceFolder}/${config:mesonbuild.buildFolder}/meson-vscode.env",
      },
      "osx": {
        "MIMode": "lldb",
        // lldb-mi doesn't support large environment variables: https://github.com/lldb-tools/lldb-mi/pull/87
        "environment": [
          {
            "name": "GST_PLUGIN_PATH",
            "value": "${workspaceFolder}/${config:mesonbuild.buildFolder}/subprojects",
          },
          {
            "name": "GST_PLUGIN_SCANNER",
            "value": "${workspaceFolder}/${config:mesonbuild.buildFolder}/subprojects/gstreamer/libs/gst/helpers/gst-plugin-scanner",
          },
        ],
      },
      "linux": {
        "MIMode": "gdb",
        "envFile": "${workspaceFolder}/${config:mesonbuild.buildFolder}/meson-vscode.env",
      },
      "cwd": "${workspaceFolder}/${config:mesonbuild.buildFolder}/subprojects/gstreamer/tools/",
      "program": "${workspaceFolder}/${config:mesonbuild.buildFolder}/subprojects/gstreamer/tools/gst-launch-1.0",
      "args": [
        "videotestsrc",
        "!",
        "autovideosink"
      ],
      "environment": [
        {
          "name": "GST_DEBUG",
          "value": "4"
        },
      ],
      "stopAtEntry": false,
      "preLaunchTask": "Meson: Build all targets",
      "symbolOptions": {
        "searchPaths": [
          "${workspaceFolder}/${config:mesonbuild.buildFolder}",
        ],
        "searchMicrosoftSymbolServer": true,
        "cachePath": "${workspaceFolder}\\${config:mesonbuild.buildFolder}\\vscode-symbols-cache",
        "moduleFilter": {
          "mode": "loadAllButExcluded",
          "excludedModules": []
        }
      }
    }
  ]
}