gpt4 book ai didi

objective-c - 在控制台中强制写入 Xcode 'Debugger Output'?

转载 作者:行者123 更新时间:2023-12-02 16:36:07 25 4
gpt4 key购买 nike

Xcode 控制台有一个“调试器输出” 过滤器。我知道这是与 lldb 一起使用的,并且您可以使用断点将消息打印到此输出。我的问题不是如何做到这一点。

我的问题是:Xcode 自身 用来将 lldb 消息写入Debugger Output 的底层机制是什么(不是 目标输出)?有没有类似stdout或者stderr的变量写在这里?是否可以从 Xcode 目标代码 (Swift/Obj-C/C) 写入此输出?

最佳答案

看起来 Xcode 使用 tty 与 lldb 通信,您可以使用它与调试器输出接口(interface):

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 (21280) 的进程 ID。使用它,我们可以找到它打开的文件:

$ 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

现在我们可以用它来写我们想要的任何东西:

enter image description here

关于objective-c - 在控制台中强制写入 Xcode 'Debugger Output'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62701683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com