在  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) 

1)查看String 或其它变量。

po 变量名
2)查看某个Property。比如要查看item变量的name属性。
po [item name]    注意,po item.name是不工作的。
3)查看数组
po [myArray objectAtIndex:index]

Xcode如何查看内存中的数据的更多相关文章

  1. Xcode debug时如何查看内存中的数据

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

  2. EF如何操作内存中的数据以及加载相关联表的数据:延迟加载、贪婪加载、显示加载

    之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需要用的,这个系列讲讲如何使用EF操作数据库.老版本的EF主要是通过Ob ...

  3. 【EF学习笔记05】----------操作内存中的数据

    SingleOrDefault实验 //SingleOrDefault实验 using (var db = new Entities()) { var classes = new Classes() ...

  4. ffmpeg 从内存中读取数据(或将数据输出到内存)

    更新记录(2014.7.24): 1.为了使本文更通俗易懂,更新了部分内容,将例子改为从内存中打开. 2.增加了将数据输出到内存的方法. 从内存中读取数据 ffmpeg一般情况下支持打开一个本地文件, ...

  5. EF如何操作内存中的数据和加载外键数据:延迟加载、贪婪加载、显示加载

    EF如何操作内存中的数据和加载外键数据:延迟加载.贪婪加载.显示加载 之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需 ...

  6. ffmpeg 从内存中读取数据(或将数据输出到内存)(转)

    更新记录(2014.7.24): 1.为了使本文更通俗易懂,更新了部分内容,将例子改为从内存中打开. 2.增加了将数据输出到内存的方法. 从内存中读取数据 ffmpeg一般情况下支持打开一个本地文件, ...

  7. ffmpeg 从内存中读取数据 .

    http://blog.csdn.net/leixiaohua1020/article/details/12980423 ——————————————————————————————————————— ...

  8. 使用spark将内存中的数据写入到hive表中

    使用spark将内存中的数据写入到hive表中 hive-site.xml <?xml version="1.0" encoding="UTF-8" st ...

  9. 通过dbcc page来查看表中的数据

    --1.先建表 CREATE TABLE test(idd INT NOT NULL,name VARCHAR(10) NULL) INSERT INTO TEST SELECT 1,'abcdefg ...

随机推荐

  1. SQL Server 2008 R2 开启允许远程连接

      方法/步骤 1 登陆SQL Server 2008(windows身份认证),登陆后右击,选择“属性”.   2 左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证 ...

  2. Selenium Grid Configuration

    Start Hub and Node with Json config 1. Start Hub with json config file title HubWebDriver java -jar ...

  3. ajax获取数据库中数据

    xhr=new XMLHttpRequest(); var url="要获取数据的地方"; xhr.open('post',url,true); POST请求头(get就不用写这个 ...

  4. hibernate的懒加载问题

    产生原因: 当使用hibernate查询一个对象的时候,如果Session关闭,再调用该对象关联的集合或者对象的时候,会产生懒加载异常! 解决方案: 方案一: 在Session关闭之前,查询对象关联的 ...

  5. 二级菜单jquery

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Github/Eclipse管理Maven项目

    Eclipse和Git插件 (To-do: 直接从workspace导入也可以,弄明白这个repo管理的本质,查看sprigmvc是如何导入的) 最新版本的Eclipse都直接集成了Git插件 Ecl ...

  7. 新建txt文件新增内容并打印出

    #!/usr/bin/python import os file1=open("C:\Python34\ceshi.txt","a+");  #a+开一个文件用 ...

  8. netty4 连通步骤

    转载:http://xw-z1985.iteye.com/blog/1973205 服务端依次发生的步骤 建立服务端监听套接字ServerSocketChannel,以及对应的管道pipeline: ...

  9. js模拟快捷键操作表单

    <html> <head> </head> <body> <script> //键盘快捷键提交表单ctrl+s document.onkey ...

  10. office 使用技巧

    Excel: 非打印区域显示成灰色:视图--分页预览 选定行的时侯,如何从某一行选定到末尾? 先点某一行,然后按住shift不松,再按END,再按下方向箭. 选定列也是这样,先按住某列,然后按SHIF ...