IOS调试lldb常用命令

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]

这个将会输出这个异常的名字,在这里是NSInvalidArgumentException,并且:

(lldb) po [$eax reason]

这个将会输出错误消息:

(unsigned int) $4 = 114784400 Receiver () has no
segue with identifier ‘ModalSegue‘

注意:当你仅仅使用了“po $eax”,这个命令将会对这个对象调用“description”方法和打印出来,在这个情况下,你也会得到错误的消息。

实用LLDB命令

命令名 用法 说明

 
expr expr 表达式 可以在调试时动态执行指定表达式,并将结果打印出来,很有用的命令。
po po 表达式 与expr类似,打印对象,会调用对象description方法。是print-object的简写
print print (type) 表达式 也是打印命令,需要指定类型。
bt bt [all] 打印调用堆栈,是thread backtrace的简写,加all可打印所有thread的堆栈。
br l br l breakpoint list的简写
process continue l process continue 简写:c
thread step-in l thread step-in l 简写:s
thread step-inst l thread step-inst l 简写:si
thread step-over l thread step-over l 简写:n
thread step-over-inst l thread step-over-inst l 简写:ni
thread step-out l thread step-out l 简写:f
thread list thread list 简写:th l

更多的命令可以参见这个网址

时间: 2024-12-28 13:56:27

IOS调试lldb常用命令的相关文章

iOS调试-LLDB

LLDB是LLVM下的调试器.Xcode从4.0开始编译器开始改用LLVM,相应的调试器也从gdb改为LLDB.而从 Xcode5.0开始所有工程也被自动设置为使用LLDB. 记录一些LLDB中常用的命令,举个简单的例子,这段代码在运行的时候程序会崩溃 1.查看地址的信息,可以找出出错代码的行数,怀疑是0x00001b91这个内存地址发生错误 image lookup --address 0x00001b91 2.输出视图的继承关系 po [[self view] recursiveDescri

iOS,android 常用命令

iOS 常用命令: https://blog.csdn.net/ilikekand17/article/details/81907179 https://www.jianshu.com/p/72c62b079e1e android 常用命令: https://www.jianshu.com/p/ccd35afa8470 原文地址:https://www.cnblogs.com/zhang-dan/p/11018798.html

iOS Mac终端常用命令 & Vim环境下常用命令

mac 终端 常用命令 基本命令 1. 列出文件ls 参数 目录名        例: 看看驱动目录下有什么:ls /System/Library/Extensions参数 -w 显示中文,-l 详细信息, -a 包括隐藏文件 2. 转换目录 cd    例:想到驱动目录下溜达一圈   cd /System/Library/Extensions 3. 建立新目录 mkdir目录名 4. 拷贝文件 cp 参数 源文件 目标文件    例:想把桌面的Natit.kext 拷贝到驱动目录中  cp -

【IOS】libimobiledevice常用命令

libimobiledevice 是一个跨平台的软件库,支持 iPhone®, iPod Touch®, iPad® and Apple TV® 等设备的通讯协议. 安装 命令: brew install --HEAD libimobiledevice brew install --HEAD ideviceinstaller PS:需要加上 –HEAD 选项,如果不加,安装是老版本,不支持iOS10的手机,所以安装时,需要加上 –HEAD 选项 常用命令 1.查看当前连接的设备 idevice_

IOS调试lldb命令常用po

lldb命令常用(备忘) 假如你准备在模拟器里面运行这个,你可以在“(lldb)”提示的后面输入下面的: (lldb) po $eax LLDB在xcode4.3或者之后的版本里面是默认的调试器.假如你正在使用老一点版本的xcode的话,你又GDB调试器.他们有一些基本的相同的命令,因此假如你的xcode使用的是“(gdb)”提示,而不是“(lldb)”提示的话,你也能够更随一起做,而没有问题. “po”命令是“print object”(打印对象)的简写.“$eax”是cup的一个寄存器.在一

IOS调试lldb命令常用,po,

lldb命令常用(备忘) 假如你准备在模拟器里面运行这个,你可以在“(lldb)”提示的后面输入下面的: (lldb) po $eax LLDB在xcode4.3或者之后的版本里面是默认的调试器.假如你正在使用老一点版本的xcode的话,你又GDB调试器.他们有一些基本的相同的命令,因此假如你的xcode使用的是“(gdb)”提示,而不是“(lldb)”提示的话,你也能够更随一起做,而没有问题. “po”命令是“print object”(打印对象)的简写.“$eax”是cup的一个寄存器.在一

调试 mysql 常用命令

show full processlist  -----显示当前数据库线程,可查看sleep线程 set global wait_timeout=100  -----设置数据库线程sleep超时时间 show global variables like 'wait_timeout'  -----显示当前数据库线程sleep超时时间 kill [processid] -----杀掉线程 show variables like '%max_connections%'  -----数据库最大连接数 s

【iOS】开发常用命令

环境信息: Mac OS X 10.10.1 删除指定后缀名的文件 进入指定文件夹,输入: find . -name .svn | xargs rm -Rf 查看全部隐藏文件 defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏全部隐藏文件 defaults write com.apple.finder AppleShowAllFiles -bool false 查看静态库支持的系统位数 lipo -info xxxxx.

iOS调试

iOS高效调试 写代码难免出现bug.储备些调试技能绝对能够提高你的工作效率,让bug无所遁形.下面就和大家分享一些我在工作中常用的iOS调试小技能. 1. 打印 最简单,基础的调试方法就是打印日志了.贴出封装好的日志打印代码: #ifdef DEBUG #define DLog(fmt, ...) NSLog((@"<%s : %d> %s  " fmt), [[[NSString stringWithUTF8String:__FILE__] lastPathCompon