Xcode调试之View Memory(查看内存)

本文通过一个实际问题,介绍了如何利用Xcode的View Memory功能检查内存中的原始数据,以解决iOS应用在socket通信中遇到的数据不匹配问题。通过查看内存布局,分析endianness和数据结构,成功定位到服务端的问题。
摘要由CSDN通过智能技术生成

  借着最近在工作中遇到的一个问题,简单来讲讲如何使用xcode的view memory功能来查看数据,排查问题。

问题描述:

  和服务器进行socket通信,但客户端这边发现服务器发过来的一个信令在反解、结构化后,有一个字段的数值和约定的对应不上,双方都先排查了一下各自代码,都没有发现明显的问题,导致现在无法定位问题引入的源头。于是决定客户端这边拿到反解、结构化之前,服务器发过来的原始数据,看看到底是传过来的时候数据就是错的,还是因为客户端这边反解、结构化时引入的错误。

数据格式:

数据组成:msgId(4字节)+cntLen(4字节)+value1(32字节)+value2(4字节)

约定好正确的数据应该是msgId=0x00020007, value2=1,结果目前客户端这边反解出来的结果是value2=3,所以下面我们就借助view memory来看看服务器传过来的原始数据(value2的值)到底是否正确。

调试:

  在数据接收过来,尚未做任何处理时打上断点。原始数据目前都存在指针_buff指向的内存空间中。右键选择view memory of "*_buff",注意不要选择上面的view memory of "_buff",view memory o

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值