use*_*607 4 variables xcode gdb watch
我在Xcode 4中迷失了.看一个简单的变量是一场噩梦.我不知道如何"观察变量值".在Xcode 3中更容易......
我有以下代码:
if (labelEast.center.x > (east_oldPosition.x + 50) )
NSLog(@"Time to switch to previous exercise !");
else if (labelEast.center.x < (east_oldPosition.x - 50) )
NSLog(@"Time to switch to next exercise !");
Run Code Online (Sandbox Code Playgroud)
设置断点后,我只是想看labelEast.center.x
(labelEast
是一个UILabel
对象).由于我在Xcode 4菜单中找不到监视项目,因此我尝试使用gdb.我习惯用po
(打印对象)打印变量/对象值.但是现在,我无法显示labelEast
center
属性,因为它是从母类继承的.
(gdb)po labelEast.center
没有名为center的成员.
我不明白为什么gdb说这个,而代码工作正常并看到属性.
因此我有两个问题:
非常感谢,弗兰兹
不幸的是,我尝试了但得到了这个:
po [labelSouth center]
程序收到信号EXC_BAD_ACCESS,无法访问内存.原因:地址为KERN_INVALID_ADDRESS:0x1a000356 objc_msgSend_stret()中的0x343c7d06正在调试的程序在从GDB调用的函数中发出信号.GDB保留在接收信号的帧中.要更改此行为,请使用"set unwindonsignal on"将放弃对包含函数(objc_msgSend)的表达式的求值.
当我尝试:
(gdb)print labelSouth.center
没有名为center的成员.
我真的怀疑没有进入中心的财产UILabel
.但我怎么能运行代码???
Eim*_*tas 12
我自己几次打这个东西只是为了记住"哦,没错,gdb不支持点符号所以我必须使用getter".然后就做:
(gdb) po [myObject someProperty]
Run Code Online (Sandbox Code Playgroud)
一切都与世界相处得很好.同时重读你的问题我发现你要求打印一个非对象,因此你必须给gdb一个你要打印的属性类型的提示:
(gdb) p (CGRect)[myView frame]
(gdb) p (CGPoint)[myView center]
Run Code Online (Sandbox Code Playgroud)
等等.