LLDB:未设置 TERM 环境变量,即使已设置
LLDB: TERM environment variable not set, even though it is set
是的,我发现其他问题也有同样的问题:
- TERM environment variable not set on mac
- TERM environment variable not set
- 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 & ...
您看到的是 "platform shell" 命令没有将 lldb 的环境传递给它生成的 shell。在 lldb 中,"platform" 可以是远程系统或本地系统 - 取决于您连接的平台 - 因此使用 lldb 的环境执行 "platform shell" 并不总是正确的做法。默认情况下,lldb 默认清除 shell 执行环境。
但是如果有一个 "platform shell" 的标志告诉它使用 lldb 的环境,那将很有用。请随意使用 lldb.llvm.org 的 bugzilla 提交一个错误(或者如果你觉得大胆的话,自己动手添加这个 - 这是一个开源项目......)
请注意,在 lldb 下启动调试进程时,您确实可以控制传递的环境。在Command Line lldb中,target.inherit-env
设置控制进程是否继承lldb的环境,可以使用target.env-vars
或env
命令修改环境。如果您使用 Xcode,请在 运行 方案中为您正在调试的任何目标设置环境。
是的,我发现其他问题也有同样的问题:
- TERM environment variable not set on mac
- TERM environment variable not set
- 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 & ...
您看到的是 "platform shell" 命令没有将 lldb 的环境传递给它生成的 shell。在 lldb 中,"platform" 可以是远程系统或本地系统 - 取决于您连接的平台 - 因此使用 lldb 的环境执行 "platform shell" 并不总是正确的做法。默认情况下,lldb 默认清除 shell 执行环境。
但是如果有一个 "platform shell" 的标志告诉它使用 lldb 的环境,那将很有用。请随意使用 lldb.llvm.org 的 bugzilla 提交一个错误(或者如果你觉得大胆的话,自己动手添加这个 - 这是一个开源项目......)
请注意,在 lldb 下启动调试进程时,您确实可以控制传递的环境。在Command Line lldb中,target.inherit-env
设置控制进程是否继承lldb的环境,可以使用target.env-vars
或env
命令修改环境。如果您使用 Xcode,请在 运行 方案中为您正在调试的任何目标设置环境。