LLDB:TERM环境变量未设置,即使已设置

时间:2015-04-12 21:30:02

标签: lldb

是的,我发现了其他问题:

  1. TERM environment variable not set on mac
  2. TERM environment variable not set
  3. how to remove "TERM environment variable not set"
  4. ...


    但是,我的环境变量设置为:

    $ 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 & ...
    

1 个答案:

答案 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-varsenv命令可用于修改环境。如果您使用的是Xcode,请在Run Scheme中为您正在调试的目标设置环境。