首页 文章

LLDB重定向劣质标准输出

提问于
浏览
1

我正在使用LLDB和最新的OS X工具链( lldb --version 表示 lldb-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 回答

  • 5
    (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作为参数传递 .

相关问题