在Xcode中调试代码 一般都使用po 和 p命令,但是还是一种方法就是进入到汇编语言 debug。这时候就会用到了 lldb 的一个指令叫寄存器读。
register read
// 寄存器读
1.怎么开启汇编语言 debug
首先Xcode 菜单栏 debug 如下图所示选择 debug workflow
然后选择然后选择第一项总是显示汇编窗口
2.那么进入到指定的汇编断点之后应该如何打印信息呢
使用register read
就会把具体的信息给打印出来
如下所示,还可以具体使用 register read rsp
等打印出来逐条的信息,不过意义不是特别大,因为register read已经可以把所有信息打印出来
(lldb) register read
General Purpose Registers:
rax = 0x0fc228d768f90060
rbx = 0x00000001088ebc05 "count"
rcx = 0x0000000000000111
rdx = 0x00000001167855c0 dyld`_main_thread
rdi = 0x00007fcf0bc0b300
rsi = 0x00000001074a8971 "sayHello"
rbp = 0x00007ffee87549f0
rsp = 0x00007ffee8754970
r8 = 0x000000010a5203a0 libsystem_pthread.dylib`_pthread_keys
r9 = 0x0000000000000040
r10 = 0x0000000000000000
r11 = 0x0000000000000202
r12 = 0x0000000000000018
r13 = 0x00007fcf0bc0b300
r14 = 0x000000010c37b9e4 UIKitCore`_UIApplicationLinkedOnVersion
r15 = 0x0000000107ddbd80 libobjc.A.dylib`objc_msgSend
rip = 0x00000001074a8341 ExchangeMethod`-[ViewController mwviewDidLoad] + 465 at ViewController.m:87
rflags = 0x0000000000000206
cs = 0x000000000000002b
fs = 0x0000000000000000
gs = 0x0000000000000000
利用image list
命令列出所有image,第一个image就是我们APP的偏移值,也就是内存地址。