无法让lldb通过重定向读取文件输入

问题描述 投票:0回答:2

我在 OSX 中使用

lldb
作为独立调试器。我正在尝试通过重定向的方式调试 C 可执行文件,使用文本文件作为输入。
lldb
文档指定了以下命令,用于将标准输入更改为给定文件:

process launch -i <file>

使用这个命令,

lldb
似乎会忽略指定的文件,而是等待键盘输入。

这是有意的行为吗?如果是这样;我需要做什么才能真正让进程对我想要的输入文件进行操作?

tl;dr:如何让

lldb
通过类似重定向来模仿标准终端执行:

./executable < <file>
c macos stdin lldb
2个回答
52
投票

我让它工作如下:

lldb <executable>
(lldb) settings set target.input-path <file>
(lldb) process launch

它解决了我的问题,但我真的没有解释为什么我的问题中的方法不起作用。


0
投票
由于上述解决方案都不适合我,所以让我提供一个我在 github 上找到的解决方案。我用过

(lldb) process launch -i input_file.txt -- arg1 arg2 arg3 ... argN
根据用户 spinicist 的建议 

https://github.com/microsoft/vscode-cpptools/issues/1219

© www.soinside.com 2019 - 2024. All rights reserved.