无法在 Visual Studio 代码中为 gdb 设置环境变量

问题描述 投票:0回答:2

描述

我正在尝试运行自定义 gdb(qnx neutrino -> ntoaarch64-gdb),但为此,我需要先设置一些环境变量。我尝试使用“环境”字段、“envFile”方法、使用“terminal.integrated.env.linux”、执行“preLaunchTask”和许多其他操作,但我无法在调用之前设置它们二进制文件的。每次尝试都会导致 gdb 在没有环境变量的情况下执行。 我还有一个环境脚本(.sh)用于设置所有变量。

重现步骤:

  1. 我正在尝试运行需要设置一些环境变量的启动gdb。
  2. 尝试添加 envFile、环境字段或任何其他方法。
  3. 启动调试器
  4. 看到 gdb 调试器失败,因为未设置变量。

启动.json

{
          "name": "Launch debug (GDB)",
          "type": "cppdbg",
          "request": "launch",
          "miDebuggerPath": "/path/to/ntoaarch64-gdb",
          "program": "/path/to/binary",
          "stopAtEntry": false,
          "cwd": "${workspaceFolder}",
          "miDebuggerServerAddress": "(ip):(port)",
          "externalConsole": true,
          "MIMode": "gdb",
          "setupCommands": [
            {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            }
          ],
          "envFile": "${workspaceFolder}/.env",
          "environment": [
              {
                "name":"ENVVAR",
                "value": "/some/path/"
              }
           ]
        }

这将返回以下输出:

¡QNX 环境未设置!

vscode 好像有两种类型的终端,集成终端和内部终端。我设置的变量有时会影响集成变量,但不会影响内部变量。

你能帮我解决这个问题吗? 谢谢

我尝试使用“环境”字段、“envFile”方法、使用“terminal.integrated.env.linux”、执行“preLaunchTask”和许多其他操作,但我无法在在内部终端中调用二进制文件。

visual-studio-code debugging gdb environment
2个回答
0
投票

我也遇到了这个问题,发现你必须在启动 VSCode 之前在环境中设置 QNX_HOST 和 QNX_TARGET 变量。


0
投票

另一种选择是修改您提到的批处理文件 -

在末尾添加一个启动 VS Code 的调用,例如:

call "C:\....\Microsoft VS Code\Code.exe"

通过使用 call,批处理文件的执行将等待 VS Code 完成后再继续,确保启动 VS Code 之前设置的任何环境变量都将被 VS Code 进程继承

© www.soinside.com 2019 - 2024. All rights reserved.