了解IOS控制台Consol

移动开发 iOS
在 iOS 开发中,如果提前释放一个指针的内存,在以后还继续使用这个指针,那么程序会立刻 crash 掉。本文又详解。

了解IOS控制台Consol是本文要介绍的内容,文中分别从利用 gdb 命令查看报错堆栈和查看全局变量值两个内容介绍,先来看详解。

利用 gdb 命令查看报错堆栈

iOS 开发中,如果提前释放一个指针的内存,在以后还继续使用这个指针,那么程序会立刻 crash 掉,而且很难有报错信息,我以前都是靠猜测去判断错误的原因,我们应该利用工具去找到错误的地方,然后快速准确的定位到错误地方,及其错误原因,***进行改进。

其实 iOS 控制台提供这种机制,如果你选择 debug 模式,在程序 crash 之后,在控制台输入 bt,就可以显示 crash 堆栈:

  1.     Program received signal:  “EXC_BAD_ACCESS”.  
  2.     warning: Unable to read symbols for /Developer/ios4.2.1/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 
  3. (8C148)/Symbols/Developer/usr/lib/libXcodeDebuggerSupport.dylib (file not found).  
  4.     (gdb) bt  
  5.     #0  0x33a06464 in objc_msgSend ()  
  6.     #1  0x3139de2e in -[UIImageView setImage:] ()  
  7.     #2  0x00009ecc in -[RoundMenuView touchesEnded:withEvent:] (self=0x29e140_cmd=0x316b1a7b
  8. touches=0x2e1050event=0x2424f0) at /Users/wangjun/workspace/iphone/Classes/RoundMenuView.m:130  
  9.     #3  0x313b1354 in -[UIWindow _sendTouchesForEvent:] ()  
  10.     #4  0x313b0cce in -[UIWindow sendEvent:] ()  
  11.     #5  0x3139bfc6 in -[UIApplication sendEvent:] ()  
  12.     #6  0x3139b906 in _UIApplicationHandleEvent ()  
  13.     #7  0x31eecf02 in PurpleEventCallback ()  
  14.     #8  0x304236fe in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()  
  15.     #9  0x304236c2 in __CFRunLoopDoSource1 ()  
  16.     #10 0x30415f7c in __CFRunLoopRun ()  
  17.     #11 0x30415c86 in CFRunLoopRunSpecific ()  
  18.     #12 0x30415b8e in CFRunLoopRunInMode ()  
  19.     #13 0x31eec4aa in GSEventRunModal ()  
  20.     #14 0x31eec556 in GSEventRun ()  
  21.     #15 0x313cf328 in -[UIApplication _run] ()  
  22.     #16 0x313cce92 in UIApplicationMain ()  
  23.     #17 0x00002da2 in main (argc=1argv=0x2fdff44c) at /Users/wangjun/workspace/iphone/main.m:19  
  24. kill  
  25. quit 

利用堆栈信息,就可以准确的定位到错误地方。

利用 gdb 命令查看全局变量值

了解IOS控制台Consol

consol控制台中,输入print 变量名,就可以查看其值。

小结:了解IOS控制台Consol的内容介绍完了,希望通过本文的介绍对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2010-12-21 14:32:43

操作控制台

2011-07-06 15:25:33

Windows控制台

2017-10-15 10:24:27

开发

2009-06-15 09:50:34

JBoss控制台

2011-07-22 17:05:56

IOS 控制台 GDB

2009-03-04 10:10:49

控制台桌面虚拟化Xendesktop

2009-10-10 10:45:04

VB 2005新型控制

2021-06-17 11:34:54

SLS 阿里云

2011-07-27 13:59:04

2011-07-11 09:57:19

WINDOWS控制台DOS命令

2011-07-12 15:18:01

SQLite数据库引擎

2011-03-24 10:08:38

Nagiosweb

2011-07-11 13:52:45

Windows控制台

2009-07-29 10:22:00

Ubuntu虚拟控制台linux

2010-09-02 15:54:26

路由器配置

2009-06-12 18:50:34

JBoss控制台密码设

2014-09-19 10:03:18

Chrome

2011-07-19 15:15:59

故障恢复控制台

2010-03-22 18:42:23

2011-04-20 10:15:02

Linuxconsole口
点赞
收藏

51CTO技术栈公众号