LLDB重定向劣质标准输出

时间:2015-11-02 21:18:22

标签: macos lldb

我正在使用LLDB和最新的OS X工具链(lldb --versionlldb-340.4.110)。

我试图调试可执行文件,这会产生很多输出到stdout。 以前可以通过重定向来抑制输出,例如,到/dev/null

但是在最新的OS X工具链更新之后,它已经开始产生以下错误:

(lldb) run >/dev/null
error: invalid JSON

该地区的LLDB有什么变化吗?就像添加一些语法来指定stdin / stdout / stderr重定向一样。在LLDB文档或邮件列表中找不到任何线索。我也可以认为它是Apple特有的LLDB错误。

P.S。

我知道我的问题可以通过运行来临时解决: sudo lldb -w -n <executable>在单独的终端窗口中,它将告诉LLDB等待具有给定名称的新进程,然后附加到该进程。在这种情况下,我可以在stdin重定向到/dev/null的另一个终端窗口中运行我的可执行文件。

但是我对这个工作流感到非常不舒服,因为stdout重定向只能在我的Linux机器上的GDB中运行。打破习惯总是让人感到不舒服。

1 个答案:

答案 0 :(得分:6)

(lldb) process launch -o /dev/null -- <OTHER ARGUMENTS>

会做你想要的。您还可以创建别名来执行此操作:

(lldb) command alias silent-run process launch -o /dev/null --

然后:

(lldb) silent-run a b c 

将运行您的程序,将stdout重定向到/ dev / null,并将a,b和c作为参数传递。