OSX上的VSCode C ++调试会话内部环境配置不正确吗?

时间:2018-07-06 07:32:27

标签: c++ macos visual-studio-code

我喜欢一种编程语言,它调用clang来链接它发出的位代码文件。 (也许有更好的方法可以同时完成所有这些操作?)我一直在使用Visual Studio Code对其进行调试,并且效果很好。

我最近升级了llvm。那时,内置的osx clang抱怨无法识别位码构造。所以我用brew安装了llvm的clang部分。这看起来对编译器有效,但是无法调用链接器。

当我运行调试会话时,我会在调试窗口中得到它:

clang-6.0: error: unable to execute command: Executable \"ld\" doesn't exist!

但是,如果我从嵌入式终端运行,则可以正常工作。

似乎clang试图显式扩展ld的位置,而不是使用内置路径解析。 VSCode的C ++调试器启动环境中的某些问题导致了问题。

一些支持诊断的功能(尝试暂时将其保持简短...)。

从调试器运行时:

whereis ld works and emits...
/usr/bin/ld

env emits what looks like a wrapped environment...
PWD=/Users/<snipped>
SHLVL=1
_=/usr/bin/env

echo $PATH emits...
/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.

And clang tries to link it runs "ld" and says...
clang-6.0: error: unable to execute command: Executable "ld" doesn't exist!

从嵌入式终端运行时:

whereis ld works and emits...
/usr/bin/ld

env emits...
a metric ton of stuff including
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin

echo $PATH emits...
/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.

And clang tries to run "/usr/bin/ld" which works fine.

我意识到这可能是clang ld查找错误(无法正确扩展_ = / usr / bin / env ??)。不幸的是A)我对OSX环境扩展不是很了解B)是否VSCode C ++调试器使用某种标准的OSX环境柔术C)不确定如何从现有VSCode调试器会话中调试运行的clang D)不能不知道如何模拟VSCode调试器环境设置,以开始弄清毛线球。

我认为我已经升级了现在不受阻碍的OSX / XCode(使用VSCode调试器中的内置clang编译器可以再次使用)。我想无论如何我都会提出这个建议,以防我能解决问题或至少学到一些东西。

有什么想法/建议吗?

谢谢, 阿德里安

0 个答案:

没有答案