我正在尝试运行自定义 gdb(qnx neutrino -> ntoaarch64-gdb),但为此,我需要先设置一些环境变量。我尝试使用“环境”字段、“envFile”方法、使用“terminal.integrated.env.linux”、执行“preLaunchTask”和许多其他操作,但我无法在调用之前设置它们二进制文件的。每次尝试都会导致 gdb 在没有环境变量的情况下执行。 我还有一个环境脚本(.sh)用于设置所有变量。
{
"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”和许多其他操作,但我无法在在内部终端中调用二进制文件。
我也遇到了这个问题,发现你必须在启动 VSCode 之前在环境中设置 QNX_HOST 和 QNX_TARGET 变量。
另一种选择是修改您提到的批处理文件 -
在末尾添加一个启动 VS Code 的调用,例如:
call "C:\....\Microsoft VS Code\Code.exe"
通过使用 call,批处理文件的执行将等待 VS Code 完成后再继续,确保启动 VS Code 之前设置的任何环境变量都将被 VS Code 进程继承