Lldb打印函数参数$r2的时候,怎么打印的是一串数字,这个该怎么看。。

(lldb) p (char*)$r1
(char *) $11 = 0x0182c799 “onLongPressedWCSight:”
(lldb) p $r2
(unsigned int) $13 = 182519776

为什么r2是一串数字????这个该怎么解读?求老大指点下

x/s $r2 或者po $r2 ,取决于在堆栈还是在内存

那就是说我这边的这串数字其实是一个地址。如果用po $r2的话应该就可以显示出object了吧。

yes

那其实我在lldb的时候,我并不知道这个参数是个object还是一个str或者integer。我怎么知道要用哪个打印呢。这个只能估吗?

根据汇编上下文确定类型。

我一般都是先po一下,然后根据输出再猜

写个功能直接把所有可能值都打印出来不就行了?

1 Like

发个帖子,教教我们怎么写这个功能呗

大概这样,执行语句,拿返回值

lldb功能很强大啊。可惜没找到非常详细的中文教程。尤其是关于脚本制作这方面的内容。

搜索lldb python脚本,这方面内容还是挺多的吧

刚好我也想问这个问题,谢谢