`
zhangziyangup
  • 浏览: 1187135 次
文章分类
社区版块
存档分类
最新评论

Xcode如何查看内存中的数据

 
阅读更多
在 debug 模式下如何在断点处,查看字符指针变量内存中的值,像vs2008的调试工具一样的内存查看器,现在只能查看第一个内存中的值可以在输出窗口采用gdb命令:x /nfu <addr>

n表示要显示的内存单元的个数

-----------------------------------------

f表示显示方式, 可取如下值:
x 按十六进制格式显示变量
d 按十进制格式显示变量
u 按十进制格式显示无符号整型
o 按八进制格式显示变量
t 按二进制格式显示变量
a 按十六进制格式显示变量
i 指令地址格式
c 按字符格式显示变量
f 按浮点数格式显示变量
-----------------------------------------
u表示一个地址单元的长度:
b表示单字节
h表示双字节
w表示四字节
g表示八字节
-------------------------------------------
例如x/16xb self

会显示self指针地址内容,16个字节,16进制

-------------------------------------------

-------------------------------------------

用 Xcode Debug 时可以用以下方法查看全局变量:

Objective-C 直接在console(控制台-gdb)输入 po+变量名

开发程序时,加了断点进行debug但发现不知到怎样查看变量的内容。用惯eclipse了。看到控制台上显示GDB,就查了下GDB的命令,方便以后使用
clear FILENAME:NUM 删除断点。

continue 继续执行直到下一个断点,也可以写做cont
help NAME 帮助
break NUM 在某行设置断点
kill 终止被调试的程序
print-object 显示对象的内容,也可以写做po
whatis 查看对象的数据类型
next 向前执行一行代码
step 进入一个方法
finish 跳出一个方法
以上命令可以在xcode的控制台进行输入

在GDB窗口中使用po就可以查看变量.(po = print object)
1)查看String 或其它变量。
po 变量名
2)查看某个Property。比如要查看item变量的name属性。
po [item name] 注意,po item.name是不工作的。
3)查看数组
po [myArray objectAtIndex:index]



/******************************************************我是分割线***********************************************/

在Xcode中,Debug时,不能像eclipse ,或VS那些集成开发那样,能直接查看变量的值。那怎么在调试的时候查看XCode的变量呢?
有一些方法的。

1、新建一个Single View App

在viewDidLoad里添加些代码:
- (void)viewDidLoad{ [super viewDidLoad]; NSDictionary*dic = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1", @"28",@"age",@"rongfzh",@"name",nil]; UILabel*label =[[UILabel alloc] init]; label.frame= CGRectMake(20,40,250,60); label.text= [dic objectForKey:@"name"]; [self.view addSubview:label];}
在最后一行打上断点。
2、"po" : print object 命令 打印出对象。

Command+R调试运行,在 Debug Console 上lldb上输入po dic回车,显示如下:


这就把词典内容打印出来了。
再打印label试试。

(lldb)po label

(UILabel *) $3 = 0x06a8bdd0 <UILabel: 0x6a8bdd0; frame = (20 40; 250 60); text = 'rongfzh'; clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x6a8be90>>

label的信息也打印出来了。

3、print命令

print (char*)[[dic description] cString]

(char *) $4 = 0x06d79760 "{\n age = 28;\n key1 = value1;\n name = rongfzh;\n}"

打印对象的retainCount,但对象被回收

(lldb) print (int)[label retainCount]

(int) $2 = 1


/*******************************************************************************************************************/

对于IPhone开发/XCode的初学者,如何在调试时查看变量的值是很头痛的事情。因为Xcode的expression 经常无法正确显示变量的值。但是强大的GDB可以很方便的帮我们查看变量的值。

当执行到某断点时,在GDB窗口中使用po就可以查看变量.(po = print object)<wbr></wbr>
1)查看String 或其它变量。
po 变量名
2)查看某个Property。比如要查看item变量的name属性。
po [item name] <wbr><wbr>注意,po item.name是不工作的。</wbr></wbr>
3)查看数组
po [myArray objectAtIndex:index]
分享到:
评论

相关推荐

    如何在xcode里面使用内存泄露查找工具

    本文将详细讲解如何在Xcode中使用内存泄露查找工具,比如Memory Leaks和Instruments。 首先,了解什么是内存泄露是必要的。内存泄露指的是程序在申请内存后,未能在不再使用时及时释放内存,导致可用内存逐渐减少,...

    Xcode中文实用教程

    Xcode内置Instruments工具,能够进行内存分析、CPU使用率检测、能源效率评估等,帮助开发者优化应用性能。 8. **App Store Connect** 在Xcode中可以直接提交应用程序到App Store Connect进行审核和发布。App ...

    Xcode 15.4 真机调试

    4. **性能分析**:Xcode 15.4包含了Instruments工具,用于实时监测CPU、内存、能源消耗等性能指标。开发者可以发现并解决性能瓶颈,优化应用的运行效率。 5. **界面布局与交互测试**:在真机上,开发者可以直观地...

    Xcode 14.2 绝对好用

    Xcode的调试工具在14.2版本中继续加强,包括改进的性能仪表板,用于分析内存和CPU使用情况;新增的能源检测工具,帮助开发者发现并优化可能导致电池消耗过快的问题。 ### 7. App Store Connect集成 Xcode 14.2...

    xcode 15.4 真机调试包

    6. **App Store Connect集成**:Xcode 15.4会继续加强与Apple的App Store Connect的集成,使得提交应用审核、查看用户反馈和下载分析报告更加便捷。 7. **性能工具**:包括Instruments和Time Profiler等工具,帮助...

    查找Xcode无用代码

    另外,Xcode的"Instruments"工具也包含了一个名为"Leaks"的工具,虽然它的主要目的是检测内存泄漏,但在分析过程中,它也能帮助发现未使用的代码。如果一段代码从未被执行,那么与之相关的内存分配也就不会发生,这...

    xcode16.1真机调试包

    - 开始调试:在Xcode中选择目标设备,点击“Run”按钮,应用将自动部署并启动在设备上,同时Xcode将进入调试模式。 5. 应用场景: - 性能优化:通过真机调试,可以实时监控应用性能,如CPU和内存使用情况,以便...

    Xcode 升级到 12

    8. **Core Data优化**: Xcode 12可能会对Core Data进行优化,改善数据持久化的效率和性能,为开发者提供更好的数据管理体验。 9. **App Clips**: 新的iOS 14特性App Clips在Xcode 12中会有相应的支持,开发者可以...

    iOS 15.3 Xcode 开发包

    对于iOS 15.3的更新,可能包括对隐私保护的进一步强化,如App Privacy报告,它允许用户查看各个应用在过去7天内访问其数据的情况。此外,开发者需要遵循Apple的严格隐私政策,确保在收集和使用用户数据时透明且合规...

    iOS 13.6 xcode 真机包iOS 13.6 xcode 真机包

    其中包括健康应用中的新功能,如血糖数据跟踪,以及对CarPlay车载系统的更新。此外,这个版本还修复了一些安全漏洞和已知问题,确保用户设备的安全性和稳定性。 2. **Xcode**: Xcode是开发者用于构建iOS、macOS、...

    iOS Xcode 15.4真机测试包

    3. **调试工具**:Xcode的调试工具可能得到进一步强化,例如更好的内存分析、性能指标追踪以及代码分析工具。 4. **代码编辑器**:可能包含代码补全、语法高亮和重构功能的改进,提高开发效率。 5. **App Store ...

    xcode disk image 10.0

    此外,Xcode 10.0还引入了App Store Connect Integration,使得开发者可以直接在Xcode中查看和管理应用在App Store的元数据,包括价格、描述、截图等,大大简化了发布流程。同时,Xcode的Interface Builder也进行了...

    xcode 真机调试包15.5

    3. Core Data调试:对于使用Core Data的应用,Xcode提供了一个专门的视图来查看和修改数据模型,方便在调试过程中检查数据状态。 4. 自定义Log:通过Swift的print函数或第三方日志库,可以自定义应用程序的日志输出...

    Xcode真机调试iOS14.6

    1. **连接设备**:使用USB数据线将你的iOS 14.6设备连接到运行Xcode的Mac。 2. **信任开发者**:在iOS设备上,进入“设置”&gt;“通用”&gt;“设备管理”,找到你的Mac的证书并信任它,这是为了允许Xcode在你的设备上运行...

    Xcode 15.1 真机调试包

    调试过程中,开发者可以使用Xcode的Debug Navigator查看性能数据,利用Console窗口查看日志输出,使用Breakpoint设置暂停点来检查变量状态或修改代码实时生效。 6. **Live Views**:Xcode 15.1可能引入了增强的Live...

    Xcode Instruments Help中文版

    - 在 Xcode 中选择“Product”-&gt;“Profile”来启动 Instruments 并自动收集数据。 ##### 6. 无线连接 iOS 设备 - 确保设备与电脑在同一网络下。 - 在 Instruments 中选择设备作为目标。 #### 六、记录用户界面...

    Xcode真机调试包15.6.zip

    8. App Store Connect集成:Xcode与Apple的App Store Connect紧密结合,允许开发者直接在Xcode中提交应用、管理版本和查看审核状态,简化了应用发布流程。 9. 兼容性与性能提升:Xcode 15.6对各种iOS设备的兼容性...

    Xcode8编译xcode9+打包的framework所需FileProvider.framework和IOSurface.framework

    这个框架是Apple的内核扩展,用于在不同进程间高效地共享内存中的图像和其他表面数据。它在低级别提供了跨进程的图像和缓冲区共享,是许多图形和视频处理功能的基础。如果Xcode 8项目中依赖于IOSurface框架,同样...

    Xcode真机调试10.0

    7. **使用调试工具**: 在真机调试过程中,你可以利用Xcode的调试工具进行代码步进、查看内存、检查网络请求等操作。例如,使用“Debug Navigator”查看性能指标,使用“Variables View”监控变量变化,使用“Console...

    Xcode_ios_13.5.zip

    在iOS应用开发中,Xcode是苹果官方提供的集成开发环境(IDE),它包含了编写、测试和发布iOS应用程序所需的所有工具。Xcode_iOS_13.5.zip这个压缩包特别针对的是iOS 13.5版本的真机调试环境,这对于开发者来说至关...

Global site tag (gtag.js) - Google Analytics