新版本 xcode8 怎么查看对象里的值

新版本 xcode8 怎么查看对象里的值,第1张

可以开启Debuger,来追踪到具体的内容。在代码的断点处使用快捷键command+shift+Y,调出Debuger窗口,在左侧选择你的代码文件,右侧会列出该代码段的变量列表,选择你所需要追踪的数据,这里我找到了要查看的变量parameters,这是一个NSDictionary类型。点击右键,选择Print

Description to Console。

找到需要查看的变量名

然后打开Xcode的控制台(command+shift+R),就能看到详细的信息了。很简单吧,高手可以无视了,对于我这个Xcode菜鸟来说,真的很方便了。

数据显示在控制台了

Xcode的调试器为用户提供了一个GDB的界面,GDB是GNU组织的开放源代码调试器。您可以在Xcode的图形界面里做任何事情;但是,如果您需要您可以在命令行里使用GDB的命令。 要在一个调试的任务里输入GDB命令行命令:

在工具栏里点击Console Drawer (控制台抽屉窗口)按钮打开控制台。 您可以在控制台里查看Xcode调试器发送给GDB的命令,或者您可以直接在控制台里输入GDB命令。在控制台窗口里点击然后在gdb提示符后面输入命令。

Java代码

命令解释

break NUM 在指定的行上设置断点。

bt 显示所有的调用栈帧。该命令可用来显示函数的调用顺序。

clear 删除设置在特定源文件、特定行上的断点。其用法为:clear FILENAME:NUM。

continue继续执行正在调试的程序。该命令用在程序由于处理信号或断点而

导致停止运行时。

display EXPR每次程序停止后显示表达式的值。表达式由程序定义的变量组成。

file FILE 装载指定的可执行文件进行调试。

help NAME 显示指定命令的帮助信息。

info break 显示当前断点清单,包括到达断点处的次数等。

info files 显示被调试文件的详细信息。

info func 显示所有的函数名称。

info local 显示当函数中的局部变量信息。

info prog 显示被调试程序的执行状态。

info var显示所有的全局和静态变量名称。

kill终止正被调试的程序。

list显示源代码段。

make在不退出 gdb 的情况下运行 make 工具。

next在不单步执行进入其他函数的情况下,向前执行一行源代码。

print EXPR 显示表达式 EXPR 的值。

print-object打印一个对象

print (int) name 打印一个类型

print-object [artist description] 调用一个函数

set artist = @"test"设置变量值

whatis 查看变理的数据类型

在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: 0x6a8bdd0frame =

(20 40250 60)text = 'rongfzh'clipsToBounds = YES

userInteractionEnabled = NOlayer = <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

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]

如果需查看内存数据:可以在输出窗口采用gdb命令:x /nfu <addr>

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

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

f表示显示方式, 可取如下值:

x 按十六进制格式显示变量

d 按十进制格式显示变量

u 按十进制格式显示无符号整型

o 按八进制格式显示变量

t 按二进制格式显示变量

a 按十六进制格式显示变量

i 指令地址格式

c 按字符格式显示变量

f 按浮点数格式显示变量

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

u表示一个地址单元的长度:

b表示单字节

h表示双字节

w表示四字节

g表示八字节

首先你要设置一个断点,位置在你要查看的变量值的附近,然后运行程序:

点击红框里的“跳过”按钮,直到代码运行到你需要查看的变量之后为止。你可以将鼠标停留在变量上片刻,XCode会在小气泡中显示变量的值。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11427599.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存