我想运行一个可执行文件,通过管道将其stdout重定向到我的程序,并使用LLDB调试我的程序。例如:
cat my_file | ./main
然后调试./main。 我知道process launch -i my_file
,但那不完全是我想做的-我希望输出来自cat的stdout(它可以是任何其他可执行文件,而-i不能实现类似的行为)。 我在help process launch
下没有看到相关选项。
int go_on = 1
while (go_on) { sleep(1); }
当您进行连接时,请执行以下操作:
(lldb) expr go_on = 0
(lldb) continue
对于那些仍然想将 shell 命令输出作为参数传递给 lldb 的人,您可以尝试一种解决方案,即创建一个环境变量,其中包含命令的结果,然后将其作为参数传递给 lldb。当 lldb 运行时,它会设置从环境变量中获取的 target.run-args 选项。
在您的示例中,您可以按照以下步骤操作。
ARG=`cat my_file`
(echo $ARG 以验证结果是否正确)
lldb -- main $ARG