IOS调试lldb命令常用,po,
来源:互联网 发布:仿真物理实验室软件 编辑:程序博客网 时间:2024/05/16 17:27
lldb命令常用(备忘)
假如你准备在模拟器里面运行这个,你可以在“(lldb)”提示的后面输入下面的:
(lldb) po $eax
LLDB在xcode4.3或者之后的版本里面是默认的调试器。假如你正在使用老一点版本的xcode的话,你又GDB调试器。他们有一些基本的相同的命令,因此假如你的xcode使用的是“(gdb)”提示,而不是“(lldb)”提示的话,你也能够更随一起做,而没有问题。
“po”命令是“print object”(打印对象)的简写。“$eax”是cup的一个寄存器。在一个异常的情况下,这个寄存器将会包含一个异常对象的指针。注意:$eax只会在模拟器里面工作,假如你在设备上调试,你将需要使用”$r0″寄存器。
例如,假如你输入:
(lldb) po [$eax class]
你将会看像这样的东西:
(id) $2 = 0x01446e84 NSException
这些数字不重要,但是很明显的是你正在处理的NSException对象在这里。
你可以对这个对象调用任何方法。例如:
(lldb) po [$eax name]
这个将会输出这个异常的名字,在这里是NSInvalidArgumentExcepti
(lldb) po [$eax reason]
这个将会输出错误消息:
(unsigned int) $4 = 114784400 Receiver () has no segue with identifier 'ModalSegue'
注意:当你仅仅使用了“po $eax”,这个命令将会对这个对象调用“description”方法和打印出来,在这个情况下,你也会得到错误的消息。
实用LLDB命令
命令名 用法 说明exprexpr 表达式可以在调试时动态执行指定表达式,并将结果打印出来,很有用的命令。popo 表达式与expr类似,打印对象,会调用对象description方法。是print-object的简写printprint (type) 表达式也是打印命令,需要指定类型。btbt [all]打印调用堆栈,是thread backtrace的简写,加all可打印所有thread的堆栈。br lbr l是breakpoint list的简写process continue lprocess continue简写:cthread step-in lthread step-in l简写:sthread step-inst lthread step-inst l简写:sithread step-over lthread step-over l简写:nthread step-over-inst lthread step-over-inst l简写:nithread step-out lthread step-out l简写:fthread listthread list简写:th l
内存泄漏隐患提示:
Potential Leak of an object allocated on line ……
数据赋值隐患提示:
The left operand of …… is a garbage value;
对象引用隐患提示:
Reference-Counted object is used after it is released;
对retain、copy、init、release、autorelease等在计数时的使用情况的详细讲解,推荐一下:
http://www.cnblogs.com/andyque/archive/2011/08/08/2131236.html
调用autorelease这意味着,你可以在这个函数里面使用vari,但是,一旦下一次run loop被调用的时候,它就会被发送release对象。然后引用计数改为0,那么内存也就被释放掉了。(关于autorelease到底是怎么工作的,我的理解是:每一个线程都有一个autoreleasePool的栈,里面放了很多autoreleasePool对象。当你向一个对象发送autorelease消息之后,就会把该对象加到当前栈顶的autoreleasePool中去。当当前runLoop结束的时候,就会把这个pool销毁,同时对它里面的所有的autorelease对象发送release消息。而autoreleasePool是在当前runLoop开始的时候创建的,并压入栈顶。那么什么是一个runLoop呢?一个UI事件,Timer call, delegate call, 都会是一个新的Runloop。)
当程序崩溃的时候怎么办,有如下两部分(英文版的):
http://www.raywenderlich.com/10209/my-app-crashed-now-what-part-1
(中文的part-1)http://article.ityran.com/archives/1006
http://www.raywenderlich.com/10505/my-app-crashed-now-what-part-2
(中文的part-2)http://article.ityran.com/archives/1143
内存使用详细介绍:
http://www.cocoachina.com/bbs/simple/?t94017.html
苹果官方的Mac OS X Debugging Magic,详细讲述了最为一个高级苹果程序员应该具备的调试技巧
http://developer.apple.com/library/mac/#technotes/tn2004/tn2124.html
- IOS调试lldb命令常用,po,
- IOS调试lldb命令常用,po,
- IOS 调试lldb命令常用----po
- IOS调试lldb命令常用,po, Xcode控制台调试
- IOS调试lldb命令常用
- lldb常用调试命令
- 调试lldb命令常用
- 调试lldb命令常用
- 调试lldb命令常用
- 调试lldb命令常用
- 调试lldb命令常用
- IOS调试lldb命令
- iOS调试lldb命令
- (ios开发)lldb命令常用
- xcode 中的LLDB常用调试命令
- lldb(gdb)常用的调试命令
- ios 调试技巧收藏二 lldb命令
- ios 调试技巧收藏二 lldb命令
- linux打印当前时间
- 解决RPE-01012: Cannot deploy PL/SQL maps to this target schema.
- 中国将购买43架A320和27架A330 总价百亿美元
- Visual Studio 入门学习
- 让你明白,Android常用组件四大天王
- IOS调试lldb命令常用,po,
- 关于JBoss -“Closing a connection for you,please close them yourself”
- struct 后面的 student 是结构标记
- js 版的jqgrid +汇总
- day17JDK5.0新特性与正则表达式
- codeforces 148 A
- NotePad++快捷鍵
- windows dos 命令
- 老程序员的下场