美文网首页
iOS开发 -- LLDB调试器常用命令

iOS开发 -- LLDB调试器常用命令

作者: CDLOG | 来源:发表于2022-01-29 15:54 被阅读0次

简介

它是一个有着 REPL 的特性和 C++ ,Python 插件的开源调试器。LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。我们可以简单的理解成它是一个调试器。运行到断点处时,控制台就会出现LLDB的调试命令行。我们只需在这里进行调试。

打印

打印:p,print的缩写:该命令如果打印的是简单类型则会列出简单类型的的类型和值,如果是对象会打印出对象的地址。
po,print Object 的缩写,用于输出OC对象

image.png

ios在lldb调试器动态修改属性或者调用方法

在断点调试时使用这个方法可以直接修改变量的属性值,而不用先修改代码再重新运行程序到此处,便于调试
调用方法call 或者p
对方法进行动态的调用。
在断点处调用方法,比如将view的背景色设置为红色。

call self.view.backgroundColor = [UIColor redColor]

执行表达式

expr:expression的缩写,和call方法类似。可以在调试时动态执行指定表达式,并将结果打印出来。常用于在调试过程中修改变量的值。
如上图,你在控制台输入
expr a=2
你就能看到
(NSInteger) $11 = 2
这是a的值就被动态改成了2
除此之外,还可以使用这个命令生成一个新的对象,如: expr int $b = 0
p $b 这条命令用于输出新申明对象的值(注意要加$)

First throw call stack:不打印错误函数,需要自行抛出异常

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
// Override point for customization after application launch. 
NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
return YES;
}
static void uncaughtExceptionHandler(NSException *exception) {
 NSLog(@"%@\n%@", exception, [exception callStackSymbols]);
 }
image.png

寻址命令image(寻找崩溃代码位置)

image命令可用于寻址,有多个组合命令,在控制台输入help image可查看image的用法。比较实用的用法是用于寻找栈地址对应的代码位置,下面我们来举个例子:

NSArray *array = @[@1,@2];
NSLog(@"%@",array[2]);

会崩溃并且输出以下异常

image.png

箭头标注的是我们的工程名字,相应的栈地址,异常的方法名
使用image lookup --address 0x0000000100daa654 找到栈对应的类文件,以及其所在的行数。


image.png

可以看出是ViewController.m第20行出错了,找到第20行的内容正是NSLog(@"%@",array[2]);

相关文章

  • iOS 开发中 LLDB 常用命令整理

    iOS 开发中 LLDB 常用命令整理 expression(或者缩写expr) 表达式 expression ...

  • 常用调试命令

    LLDB常用命令 LLDB是LLVM下的调试器 p 输出基本类型 po 输出objc对象 expr 断点调试时,在...

  • iOS开发 -- LLDB调试器常用命令

    简介 它是一个有着 REPL 的特性和 C++ ,Python 插件的开源调试器。LLDB 绑定在 Xcode 内...

  • 浅谈LLDB调试器

    [转]浅谈LLDB调试器文章来源于:http://www.cocoachina.com/ios/20150126/...

  • iOS调试之LLDB命令

    前言 在iOSAPP开发中,我们的代码经常需要调试跟踪,最常用的是LLDB Debugger程序调试器,LLDB ...

  • LLDB 常用方法总结

    前言 LLDB 简介 LLDB 是集成于 Xcode 的默认调试器,支持在桌面、iOS设备和模拟器上调试C、Obj...

  • LLDB调试-Chisel使用

    LLDB 调试器集成于 Xcode 内部并支持 C++ ,Python插件,这里解释了其工作原理。常用命令包括pr...

  • LLDB探究

    一、LLDB 是什么? LLDB是Mac OS X上Xcode的默认调试器,支持在桌面和iOS设备和模拟器上调试C...

  • 小概念

    什么是GDB和LLDB? 我们在开发iOS程序的时候常常会用到调试跟踪,如何正确的使用调试器来debug十分重要。...

  • Swift学习笔记Day0727

    LLDB常用命令: 1 在调试器中最常用到的命令是p(用于输出基本类型)或者po(用于输出 Objective-C...

网友评论

      本文标题:iOS开发 -- LLDB调试器常用命令

      本文链接:https://www.haomeiwen.com/subject/mscdeqtx.html