Xcode控制台具有“调试器输出”过滤器。我了解这是用于的lldb
,并且您可以使用断点将消息打印到此输出。我的问题不是该怎么做。
我的问题是:Xcode本身将lldb
消息写入调试器输出(而不是目标输出)的底层机制是什么?是否有类似的变量stdout
或stderr
在此处写的变量?是否可以从Xcode目标代码(Swift / Obj-C / C)写入此输出?
看起来Xcode使用tty与lldb进行通信,您可以使用以下命令与Debugger Output进行接口连接:
echo "Wheeeeeeee" > $(lsof -p $(ps -A | grep -m1 MacOS/Xcode | awk '{print $1}') | grep -m2 dev/ttys | tail -1 | awk '{print $9}')
分解以上内容:
$ ps -A | grep -m1 MacOS/Xcode | awk '{print $1}'
21280
这给出了Xcode的进程ID(21280)。使用此工具,我们可以找到它已打开的文件:
$ lsof -p 21280 | grep /dev/ttys
Xcode 21280 tres 47u CHR 16,3 0t0 3569 /dev/ttys003
Xcode 21280 tres 58u CHR 16,5 0t0 3575 /dev/ttys005
数字最大(/dev/ttys005
在这种情况下)的就是我们想要的那个,所以让我们提取它。tail -1
将给我们输出的最后一行,并awk '{print $9}'
给我们该行的第9个项目,这就是我们想要的!
$ lsof -p 21280 | grep /dev/ttys | tail -1 | awk '{print $9}'
/dev/ttys005
现在我们可以使用它来编写我们想要的任何东西:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句