首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

XCode / LLDB: po $eax和po $r0仅显示__cxa_throw异常的int?

XCode是苹果公司推出的集成开发环境(IDE),用于开发iOS、macOS、watchOS和tvOS应用程序。它提供了丰富的工具和功能,帮助开发者进行应用程序的设计、编码、调试和测试。

LLDB是XCode中的调试器,用于在开发过程中定位和修复代码中的错误。它支持多种调试命令,其中包括"po"命令。

"po"是LLDB调试器中的一条命令,用于打印(print)对象的描述信息。在调试过程中,开发者可以使用"po"命令查看变量、对象或表达式的值,以便更好地理解代码的执行情况。

"$eax"和"$r0"是LLDB中的寄存器变量。寄存器是计算机中的一种硬件组件,用于存储和处理指令和数据。在调试过程中,开发者可以使用寄存器变量来查看和修改程序执行过程中的寄存器状态。

"cxa_throw"是C++异常处理机制中的一个函数,用于抛出异常。异常是在程序执行过程中出现的错误或异常情况,可以通过异常处理机制来捕获和处理。当调试器执行"po $eax"或"po $r0"命令时,如果只显示了"cxa_throw"异常的整数值,可能表示程序在执行过程中抛出了异常。

综上所述,"po $eax"和"po $r0"命令用于在XCode的LLDB调试器中打印寄存器变量的值。如果只显示了"__cxa_throw"异常的整数值,说明程序在执行过程中抛出了异常。为了更好地理解和解决问题,开发者可以进一步分析异常的原因和上下文,并使用其他调试命令和工具进行调试和修复。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

XCode基本使用及调试技巧

编辑区:用于编写代码区域。 调试区:用于输出显示调试信息区域。 实用区:用于显示属性提供xib类库区域。 工具栏:可以选择运行设备等。...调试区最上面一条是调试命令,包括断点开关、继续执行、单步执行、单步不如、单步步过等命令;左边是watch窗口,负责变量信息显示;右边是日志窗口,接收显示程序日志。...三、常用命令 1、 p命令 Xcode里可以使用p命令查看基本数据类型值,使用po命令查看oc对象。...另外对于多线程问题合理使用线程断点条件断点也是很有帮助。 五、UI调试 1、控件信息: 查看控件信息无外乎还是使用ppo命令。...如果日志窗口没有输出异常信息,可以切到抛异常那一帧,然后po $r0或者po $eax即可看到异常信息。 ?

6.2K71

Swift进阶-LLDB调试

程序猿最好利器就是开发工具,iOS开发者最基本,最关键一点就是熟练使用Xcode,而LLDB则是Xcode中至关重要一环。...显示任何返回值与LLDB默认格式 continue 继续执行当前进程中所有线程 detach 从当前目标进程分离 di 拆卸当前目标中指定指令,默认为当前线程的当前功能栈帧 dis 拆卸当前目标中指定指令...显示任何返回值与LLDB默认格式 parray 评估当前线程上表达式。显示任何返回值与LLDB默认格式 po 评估当前线程上表达式。...实际上,po指令就是 e -O -- 别名 expr指令: expression简写 call指令: 调用方法意思 例如: func sum(_ a: Int, _ b: Int) -> Int...{ return a + b } sum(5, 4) p指令结果: (lldb) p a (Int) $R0 = 5 po指令结果: (lldb) po a 5 e指令结果:

83830
  • Xcode 调试技巧 --常用命令断点

    Xcode调试技巧与我们日常开发息息相关,而这些调试技巧在我们解决Bug时,常常有事半功倍作用,经常会用到有各种断点 命令。...p po 使用范例 当然,这些打印功能,除了使用命令外,我们也可以使用左侧区域,点击变量右键---> print Description of “xxx”: ?...(lldb) p i (NSInteger) $16 = 1 (lldb) expression i = 5 (NSInteger) $17 = 5 (lldb) po i 5 4.call 命令...断点 Xcode断点也是很有学问,有普通断点、条件断点、符号断点、异常断点等很多种。 1.普通断点 打一个普通断点,只需要找到对应行,在代码左侧(行号上)点击一下即可。...Watch 断点 关于 Xcode 调试技巧中 断点命令就先这么多了,其他有用到以后再补充。

    3.1K40

    iOS代码调试之LLDB命令

    ),具有REPL (Read-Eval-Print Loop,交互式解释器)、C++Python插件,位于Xcode窗口底部控制台中,也可以在terminal中使用。...在LLDB模式下,根据需要输入相关LLDB调试命令既可进行代码调试,下面小编将给大家介绍几款常用LLDB命令。 1.打印 打印是代码调试中最常用命令,相关命令有:ppo。...p po 区别在于使用 po 只会输出对应值,而 p 则会返回值类型以及命令结果引用名。 用法如下: ?...4)frame variable查看帧变量 frame variable命令显示当前帧变量,默认输出当前帧所有参数所有局部变量,如下图所示: ?...5.流程控制 使用xcode运行程序到达断点时会就会停止运行,调试条上会出现四个可以用来控制程序执行流程按钮,功能分别是 “继续”“暂停”、“下一步”、“进入”、“跳出”。 ?

    1.7K20

    iOS逆向工程之Hopper+LLDB调试第三方App

    LLDB是Low Level Debugger简称,在iOS开发调试中LLDB是经常使用LLDBXcode内置动态调试工具。...1、获取usbmuxd usbmuxd虽然目前最新版本是1.1.0,但是1.1.0版本1.0.9版本支持Linux系统,也就是说我们Mac还是得下载v1.0.8版本,下载地址(usbmuxd-v1.0.8...3.输出寄存器值(p, po) 在iOS开发中,我们在使用LLDB调试时,经常会用到po命令来输出某个变量或者常量值。在使用LLDB调试WeChat时,我们也可以使用某些命令来输出寄存器中值。...也就是说“handleAuthResponse:”负责处理登录业务逻辑网络响应,并且在这个函数前边有一个比较(cmp r0, r1), 根据r0r1比较结果来进行跳转。 ?...接下来我们先将r0r1中值进行打印,$r0 = 8, $r1 = 351。

    2.2K90

    如何解决XcodeSIGABRT错误

    在继续之前,让我们讨论SIGABRT一些误解常见陷阱: SIGABRT错误通常与AppDelegate类声明无关,即使它在Xcode中突出显示了该行。...检查堆栈跟踪 在许多情况下,Xcode不会向您显示SIGABRT崩溃任何有用错误消息。发生这种情况时,了解一些调试命令很有用,例如bt。 Xcode具有称为LLDB集成调试环境。...3] = "Trillian" } 要打印复杂对象,请使用po。...有些异常是由应用程序错误或无效状态引起,因此异常断点对于查找修复这些错误很有用。...现在,您可以使用调试器检查值,单步执行代码并使用LLDB命令。如果可能,Xcode将带您到引起异常代码行。 请记住,异常并不一定会使您应用程序崩溃!

    6K20

    扒虫篇-Debug几个实用方法

    (3)异常断点Exception BreakPoint 在设置异常断点情况下 当程序crash时 Xcode会帮我们定位到crash产生位置。 ? 设置异常断点步骤: ?...三.LLDB命令 LLDBXcode默认调试器, 我们通过执行LLDB命令使调试过程更加灵活。并且可以通过指令立刻看到一些我们需要修改完代码再次运行才能看到效果或者结果,超级实用。...LLDB常用命令如下: 1, p (print)用于输出基本类型, 如 p (int)[[[self view] subviews] count] 输出子视图个数。...4, call      call即是调用意思。其实上述pop也有调用功能。因此一般只在不需要显示输出,或是方法无返回值时使用call。..., po 命令:为 print object 缩写,显示对象文本描述(显示从对象 description 消息获得字符串信息)。

    1.5K10

    汇编寄存器规则

    操作码后面的内容是源标签目标标签。也就是说,这些是操作码所作用对象。在上面的示例中,有几个寄存器,显示为 rbx 、 rsp 、 rdi rbp 。前面的 % 告诉您这是一个寄存器。...# 将理论付诸实践 在本节中,您将使用本章资源包中提供名为 Registers 项目。 通过 Xcode 打开该项目,然后运行。 这是一个非常简单应用程序,显示 64 位寄存器里面的内容。...需要注意是,该应用程序不会实时显示寄存器值; 它只能在特定函数调用期间显示寄存器值。...(lldb) po [$rdi setBackgroundColor:[NSColor redColor]] (lldb) continue 之后就可以看到效果 # Swift 寄存器 在 Swift...关闭 Xcode Registers 项目。 打开终端窗口,然后启动 iPhone X Simulator。

    2.5K50

    LLDB实战之导出Mac微信备份聊天记录SQLite密码(SQLCipher加密)

    涉及到LLDB命令 br: 设置断点 memory read: 读取内存原始值 po: 打印变量,也可以执行函数并且获得返回值 bt: 打印当前调用栈 thread step over/in/out:...于是查看SQLCipherAPI,看到用是sqlite3_key()sqlite3_key_v2()这2个函数,在源码里搜索,找到调用,一共有两处,在WCTDatabase+Database.mm...,其中$arg1为调用者本身,$arg2为方法名,后面的参数表示传递实际参数,因此是从$arg3开始,可以打印整个寄存器$arg1,$arg2出来看看 (lldb) register read General...keySize, int pageSize)时候接收,断点打在setCipher上 (lldb) br set -n setCipher (lldb) c //继续执行 触发到sqlite3_key...断点, 获取keypageSize (lldb) memory read $arg2 0x600003f8fa90: 64 64 30 36 33 35 65 63 65 62 35 37 39

    6.1K31

    XCode调试器LLDB

    现在就让我们开始与调试器共舞一曲华尔兹,看看最后能达到怎样高度。 LLDB LLDB 是一个有着 REPL 特性 C++ ,Python 插件开源调试器。...LLDB 绑定在 Xcode 内部,存在于主窗口底部控制台中。调试器允许你在程序运行特定时暂停它,你可以查看变量值,执行自定指令,并且按照你所认为合适步骤来操作程序进展。...缩写),我们可以使用它来进行简化: (lldb) po $8 ( foo, bar ) (lldb) po @"lunar" lunar...就像你可以在 C 语言中用 int a = 0 来声明一个变量一样,你也可以在 LLDB 中做同样事情。不过为了能使用声明变量,变量必须以美元符开头。...(lldb) e int $a = 2 (lldb) p $a * 19 38 (lldb) e NSArray *$array = @[ @"Saturday", @"Sunday", @"Monday

    1.3K60

    XCode调试器LLDB

    现在就让我们开始与调试器共舞一曲华尔兹,看看最后能达到怎样高度。 LLDB LLDB 是一个有着 REPL 特性 C++ ,Python 插件开源调试器。...LLDB 绑定在 Xcode 内部,存在于主窗口底部控制台中。调试器允许你在程序运行特定时暂停它,你可以查看变量值,执行自定指令,并且按照你所认为合适步骤来操作程序进展。...缩写),我们可以使用它来进行简化: (lldb) po $8 ( foo, bar ) (lldb) po @"lunar" lunar...就像你可以在 C 语言中用 int a = 0 来声明一个变量一样,你也可以在 LLDB 中做同样事情。不过为了能使用声明变量,变量必须以美元符开头。...(lldb) e int $a = 2 (lldb) p $a * 19 38 (lldb) e NSArray *$array = @[ @"Saturday", @"Sunday", @"Monday

    1.3K30

    lldb 入坑指北(1) - 给Xcode批量添加启用&禁用断点功能

    前言 为了避免浪费你时间,在阅读本文前,请先思考以下问题: 你是否经常使用 Xcode 断点功能? Xcode 断点功能好用吗?...阅读本文需要以下技能: 对 Python 有基本了解 对 Xcode 断点功能有基本了解(相关文档可以参考 Xcode 断点文档[2]) 通过本文,希望大家可以了解以下内容: 了解 lldb ...如下图所示,位于主窗口底部,名为Conseole窗口就是用于 lldb 交互区域。 ? x 断点 首先,我们先通过以下步骤对 lldb 进行初步了解。...po self 是指把 self 当做一个对象进行打印,类似的还有 p self 等命令。 ps. 通过help命令,可以打印所有的可用命令。pss. 通过help po命令,可以打印该命令用法。...internal_dict 包含了当前脚本会话变量方法。 HandleCommand 是一个实例方法,通过它,我们可以在 Python 脚本里面,调用 lldb 方法。

    1.1K10

    逆向开发从零到整(LLDB)

    前言 LLDB是我们平时调试中使用最多工具之一,p或者po是使用最多指令。除了ppo之外,还有什么指令可以使用呢?今天再次来提升一下对LLDB使用吧。...一、LLDB LLDB是个开源内置于XCode具有REPL(read-eval-print-loop)特征Debugger,其可以安装C++或者Python插件。...target stop-hook命令就是让你可以在每次stop时候去执行一些命令 target stop-hook只对breakpointwatchpoint程序stop生效,直接点击Xcode...见谅见谅 七、expression 指令 expression命令是执行一个表达式,并将表达式返回结果输出,是LLDB调试命令中最重要命令,也是我们常用p po 命令 鼻祖。...八、frame 参数检查 frame frame 官方解释 frame 框架意思,但它应解释成(帧)它能显示堆栈信息, 我们在控制台上输入命令bt,可以打印出来所有的frame。

    1K20

    iOS开发·UIWindow与视图层级调整技巧(makeKeyWindow,resignKeyWindow,makeKeyAndVisible,keyWindow,windowLevel,UIWind

    误区:关于keyWindow混淆易错点 设置keyWindow与否并不 影响视图层级显示来接收键盘及其它非触摸事件。...对于先后分别用makeKeyAndVisible方法hiddensetter方法,还是先后分别用hiddensetter方法makeKeyAndVisible方法,结局同样以最后改变显示状态UIWindow...(lldb) po self.window.windowLevel 2000 同理,打印代表UIWindowLevelStatusBar层级数据值 (lldb) po self.window.windowLevel...1000 同理,打印代表UIWindowLevelNormal层级数据值 (lldb) po self.window.windowLevel 0 小结: windowLevel数值越大显示在窗口栈越上面...Xcode查看窗口栈 四. UIWindow常见操作方法总结 1.

    7.8K10

    XCode LLDB调试小技巧基础篇提高篇汇编篇

    导语: 记录平时用到XCode LLDB调试小技巧 工欲善其事必先利其器,介绍一些LLDB调试命令小技巧~ 基础篇 1.print命令 p 输出基本类型,例如double,int po 输出对象类型...,例如NSObject 当然po也是可以输出基本类型 p命令默认是按10进制输出,如果想输出非十进制可以用以下方法 二进制 (lldb) p/t 10 (int) $2 = 0b00000000000000000000000000001010...八进制 (lldb) p/o 10 (int) $3 = 012 十六进制 (lldb) p/x 10 (int) $4 = 0x0000000a 更加详细格式控制可以点击这里查看 2.expression...free记录,从中我们可以得到一些有用信息帮助我们定位问题,比如MRC下赋值时候没有retain导致用时候野指针了。...上面我们在查找野指针时候po $rdi,也就是查看第一个寄存器也就是Self值。

    4.7K80
    领券