gpt4 book ai didi

swift - 与调试器中具有内存位置的 swift 对象交互

转载 作者:IT王子 更新时间:2023-10-29 05:18:16 25 4
gpt4 key购买 nike

假设我知道,基于早期的控制台输出,在某个内存位置是一个感兴趣的对象:

<MySpecialObject:0x7a5125a0 This is a description of my special object>

在 ObjC 调试器中,我可以像 po [0x7a5125a0 myMethod:arg1 arg2:arg2] 那样在调试器中与这个对象交互。

我也可以这样做:

(lldb) expr MySpecialObject *$foo = 0x7a5125a0
(lldb) po [foo myMethod:arg1 arg2:arg2]

在调试 Swift 程序时,如何实现这种效果(与 lldb 中给定其内存地址的对象交互)?

最佳答案

您可以尝试以下操作:

(lldb) expr -l objc++ -O -- [(id)0xmyFancyAddressGoesHere selector]

你的里程可能会有所不同,但本质上这是你在 ObjC 中所做的事情的美化版本(除了现在你在 Swift 领域所以你必须在 ObjC 模式下强制表达式计算器(-l objc++),并且你不能依赖“po”别名,所以你需要明确要求“对象描述行为”(-O)

当然,如果您发现自己经常这样做,您可以为“expr -l objc++ -O --”创建自己的别名

关于swift - 与调试器中具有内存位置的 swift 对象交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25467845/

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