我正在使用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中运行。打破习惯总是让人感到不舒服。
答案 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作为参数传递。