使用命令的输出在LLDB中运行文件

发布于 2025-01-20 00:47:19 字数 130 浏览 0 评论 0原文

在命令行中,可以使用命令的输出作为可执行文件的标准输入。例如,pbpaste 返回 OSX 上剪贴板的值。我可以使用它运行一个程序,例如 pbpaste | ./program

这在 LLDB 中也可能吗?

In command line it is possible to use the output of a command as the stdin of an executable. For example, pbpaste returns the value of the clipboard on OSX. I could run a program using this, e.g. pbpaste | ./program

Is this also possible in LLDB?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烂人 2025-01-27 00:47:19

仅当 lldb 启动程序并与其共享终端时,它才可以访问该程序的 stdio。所以你不能总是这样做。

没有 lldb 命令可将文本发送到调试对象的标准输入,但您可以使用 SBProcess.PutSTDIN 从 Python 写入进程标准输入(如果可能):

https://lldb.llvm.org/python_api/lldb.SBProcess.html#lldb.SBProcess.PutSTDIN

所以你可以很容易地使用Python命令来运行你想要的shell命令,获取输出,并使用此 API 将其写入目标。

lldb only has access to a program's stdio if it launched the program and is sharing the terminal with it. So you can't always do this.

There isn't an lldb command to send text to the debuggee's stdin, but you can write to the process stdin (when that's possible) from Python using SBProcess.PutSTDIN:

https://lldb.llvm.org/python_api/lldb.SBProcess.html#lldb.SBProcess.PutSTDIN

So you could pretty easily cons up Python command that runs the shell command you want, gets the output, and uses this API to write it to the target.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文