【问题标题】:LLDB redirect inferior stdoutLLDB 重定向劣质标准输出
【发布时间】:2015-11-02 21:18:21
【问题描述】:

我正在使用带有最新 OS X 工具链的 LLDB(lldb --version 表示 lldb-340.4.110)。

我尝试调试在标准输出中产生大量输出的可执行文件。 以前可以通过重定向来抑制输出,例如到/dev/null

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

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

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

附言

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

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

【问题讨论】:

    标签: macos lldb


    【解决方案1】:
    (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 作为参数传递。

    【讨论】:

    • -o 的长格式似乎是--stdout。还有--stderr--stdin 选项。
    猜你喜欢
    • 2014-01-20
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多