LLDB 重定向劣质标准输出

LLDB redirect inferior stdout

我将 LLDB 与最新的 OS X 工具链一起使用(lldb --versionlldb-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 作为参数传递。