我无法让 Xcode 显示 Foundation.Data
的底层内存.
我正在解析作为 Data
中的 blob 传递给我的函数的二进制格式。在调试器中 Xcode 向我展示了这个:
我可以按住 Control 键单击其中任何一个,然后选择“查看“数据”内存”等,但它们都没有显示我正在查找的内存块。 (我知道这一点是因为我 print()
通过下标运算符 data[0]
等访问了前几个字节。)
_representation
显示地址0x0
slice
(1) 显示内存,但不是我要查找的内容slice
(2) 显示与上一个相同的内容lowerBound
显示与前两个相同的内容upperBound
显示了一些其他内存,而不是我正在寻找的内容存储
显示地址0x0
我习惯了更像 C 的语言,其中有指针或数组。
我还尝试过单步执行反汇编,同时查看代码索引到数据的寄存器,但我不习惯 ARM asm,并且似乎也找不到我正在寻找的地址.
(不,这不是 0x40006000022804b0
处的内存)
期望的行为
查看Data
封装的字节
具体问题或错误
当我使用上下文菜单“查看...的内存”时,调试器向我提供的数据
的每个组件除了我正在寻找的内容之外什么都没有显示或显示字节
以及重现问题所需的最短代码
这个问题与我的代码无关。这是关于如何让 Xcode 调试器向我显示对象的底层内存。
最佳答案
基于 Alexander 的评论和 hippietrail , message.payload
的类型为 Data
:
- 转换数据表达式,即
message.payload
到NSData
- 从中获取
bytes
属性 - 右键单击表达式,选择“打印 (message.payload as NSData).bytes 的描述”
- 复制打印的十六进制地址
- 调试->调试工作流程->查看内存
- 将复制的地址粘贴到“地址”文本框中,然后按回车键
关于swift - 如何在 Xcode 中检查 "Foundation.Data"字节缓冲区中包含的字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73428197/