我在OSX上使用lldb
作为独立的调试器。我正在尝试通过重定向来使用文本文件作为输入来调试一个C可执行文件。 lldb
文档指定了以下命令来将stdin更改为给定的文件:
process launch -i <file>
使用这个命令,lldb
似乎忽略了指定的文件,而是等待键盘输入。
这是预期的行为吗?如果是,请问我需要怎么做才能让进程操作我想要的输入文件?
tl;dr:我如何让lldb
模拟像这样的标准终端执行与重定向:
./executable < <file>
我按照以下方式使其工作:
lldb <executable>
(lldb) settings set target.input-path <file>
(lldb) process launch
它解决了我的问题,但我确实没有一个解释为什么我提出的方法不起作用。
run -arg1 -arg2
而不是process launch
。 - AlienKevin
<inputfile.txt>
,将其视为占位符而不是字面的shell语法。你的程序确实是从stdin读取的。 - zwol