是的,我发现了其他问题:
...
但是,我的环境变量设置为:
$ echo $TERM
xterm-256color
但是LLDB不承认:
$ lldb myexecutable
(lldb) target create "myexecutable"
Current executable set to 'myexecutable' (x86_64).
(lldb) platform shell clear
TERM environment variable not set.
error: command returned with status 1
我也为GUI程序设置了环境变量:
envars.app(在登录时运行applescript应用程序。)
...
set ENV_TERM to "/bin/launchctl setenv TERM xterm-256color;"
...
do shell script ... & ENV_TERM & ...
或
...
set ENV_TERM to "/bin/launchctl setenv TERM xterm-256color:-dumb;"
...
do shell script ... & ENV_TERM & ...
答案 0 :(得分:1)
你所看到的是"平台shell"命令不会将lldb的环境传递给它生成的shell。在lldb,"平台"可能是一个远程或本地系统 - 取决于你连接到哪个平台 - 所以使用lldb的环境来实现"平台shell"执行并不总是正确的事情。默认情况下,lldb默认清除shell执行环境。
但是有一个标志到#34;平台shell"告诉它,使用lldb的环境。请随意使用lldb.llvm.org的bugzilla向这个效果提交一个错误(或者如果你感觉大胆的话,自己加入并添加它 - 这是一个开源项目...)
请注意,在lldb下启动调试过程时,您可以控制传递的环境。在命令行lldb中,target.inherit-env
设置控制进程是否将继承lldb的环境,并且target.env-vars
或env
命令可用于修改环境。如果您使用的是Xcode,请在Run Scheme中为您正在调试的目标设置环境。