LLDB 重定向劣质标准输出
LLDB redirect inferior stdout
我将 LLDB 与最新的 OS X 工具链一起使用(lldb --version
说 lldb-340.4.110
)。
我试图调试生成大量输出到标准输出的可执行文件。
以前可以通过重定向来抑制输出,例如至 /dev/null
.
但是在最近的 OS X 工具链更新之后,它开始产生以下错误:
(lldb) run >/dev/null
error: invalid JSON
LLDB 在那个领域有什么变化吗?就像添加一些语法来指定 stdin/stdout/stderr 重定向一样。在 LLDB 文档或邮件列表中找不到任何线索。我也可以假设这是 Apple 特定的 LLDB 错误。
P.S.
我知道运行ning可以暂时解决我的问题:
sudo lldb -w -n <executable>
在单独的终端 window 中,这将告诉 LLDB 等待具有给定名称的新进程,然后附加到该进程。在那种情况下,我可以 运行 我的可执行文件在另一个终端 window 中 stdin
重定向到 /dev/null
.
但我对该工作流程感到非常不舒服,因为标准输出重定向只能在我的 Linux 机器上的 GDB 中运行。打破习惯总是让人不舒服。
(lldb) process launch -o /dev/null -- <OTHER ARGUMENTS>
会做你想做的。您也可以创建别名来执行此操作:
(lldb) command alias silent-run process launch -o /dev/null --
然后:
(lldb) silent-run a b c
将 运行 您的程序,将标准输出重定向到 /dev/null,并将 a、b 和 c 作为参数传递。
我将 LLDB 与最新的 OS X 工具链一起使用(lldb --version
说 lldb-340.4.110
)。
我试图调试生成大量输出到标准输出的可执行文件。
以前可以通过重定向来抑制输出,例如至 /dev/null
.
但是在最近的 OS X 工具链更新之后,它开始产生以下错误:
(lldb) run >/dev/null
error: invalid JSON
LLDB 在那个领域有什么变化吗?就像添加一些语法来指定 stdin/stdout/stderr 重定向一样。在 LLDB 文档或邮件列表中找不到任何线索。我也可以假设这是 Apple 特定的 LLDB 错误。
P.S.
我知道运行ning可以暂时解决我的问题:
sudo lldb -w -n <executable>
在单独的终端 window 中,这将告诉 LLDB 等待具有给定名称的新进程,然后附加到该进程。在那种情况下,我可以 运行 我的可执行文件在另一个终端 window 中 stdin
重定向到 /dev/null
.
但我对该工作流程感到非常不舒服,因为标准输出重定向只能在我的 Linux 机器上的 GDB 中运行。打破习惯总是让人不舒服。
(lldb) process launch -o /dev/null -- <OTHER ARGUMENTS>
会做你想做的。您也可以创建别名来执行此操作:
(lldb) command alias silent-run process launch -o /dev/null --
然后:
(lldb) silent-run a b c
将 运行 您的程序,将标准输出重定向到 /dev/null,并将 a、b 和 c 作为参数传递。