Crashlogs : What is “ARM Thread State”

依然范特西╮ 提交于 2020-01-02 05:03:20

问题


I'm trying to analyse iPhone Crash Reports.

And there is something that I don't understand :

Thread 6 crashed with ARM Thread State:
r0: 0x00000000    r1: 0x00000000      r2: 0x00000001      r3: 0x00000000
r4: 0x077aa000    r5: 0x00000006      r6: 0x0010540c      r7: 0x077a9198
r8: 0x001a0420    r9: 0x00000065     r10: 0x3fcb8acc     r11: 0x310d1b68
ip: 0x00000148    sp: 0x077a918c      lr: 0x36ba33bb      pc: 0x32a29a1c
cpsr: 0x00000010

What are r0, r1, rx??

When i see that :

r3: 0x00000000

Can I assume that an "object" r3 is nil ?

Any help to understand other things about carshlogs is welcome :-)


回答1:


These are the ARM processor's registers as they were for the thread in question.

For most of the rX registers, you can better think of them as pointers to objects than objects themselves. However, they can also hold direct values or addresses.

The 'pc' register contains the last address of code the processor tried to execute. This is useful to tell the difference between EXC_BAD_ACCESS caused by trying to dereference a nil pointer and trying to execute code from address zero.

You can find Apple's documentation of their use here: http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARMv6FunctionCallingConventions.html



来源:https://stackoverflow.com/questions/6662176/crashlogs-what-is-arm-thread-state

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!