【问题标题】:LLDB: TERM environment variable not set, even though it is setLLDB:未设置 TERM 环境变量,即使已设置
【发布时间】:2015-06-18 03:30:24
【问题描述】:

是的,我发现其他类似的问题:

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

...


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

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

【问题讨论】:

    标签: lldb


    【解决方案1】:

    您看到的是“平台 shell”命令不会将 lldb 的环境传递给它生成的 shell。在 lldb 中,“平台”可以是远程系统或本地系统 - 取决于您连接到的平台 - 因此使用 lldb 的环境执行“平台 shell”并不总是正确的做法。默认情况下lldb会默认清空shell执行环境。

    但是在“平台外壳”上有一个标志来告诉它使用 lldb 的环境会很有用。随意使用 lldb.llvm.org 的 bugzilla 提交一个关于此效果的错误(或者如果您觉得大胆,请自行添加它 - 这是一个开源项目......)

    请注意,在 lldb 下启动调试进程时,您确实可以控制所传递的环境。在命令行 lldb 中,target.inherit-env 设置控制进程是否继承 lldb 的环境,可以使用target.env-varsenv 命令来修改环境。如果您使用的是 Xcode,请在 Run Scheme 中为您正在调试的任何目标设置环境。

    【讨论】:

      猜你喜欢
      • 2013-04-20
      • 2017-10-30
      • 2014-02-10
      • 2017-08-26
      • 1970-01-01
      • 2013-10-25
      • 2019-03-24
      • 2012-01-18
      • 2012-01-02
      相关资源
      最近更新 更多