Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Crashlogs : What is "ARM Thread State"

Tags:

iphone

crash

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 :-)

like image 709
GeorgioA Avatar asked Jul 12 '11 09:07

GeorgioA


People also ask

What is Crash Reporter key on iPhone?

CrashReporter Key : An anonymized per-device identifier. Two reports from the same device contain identical values. This identifier is reset upon erasing the device. Beta Identifier : A unique identifier for the combination of the device and vendor of the crashed application.

How do I view iOS crash logs?

You can also see the crash log on an iPhone/iPad by going to Settings -> Privacy -> Analytics -> Analytics Data. You can also see the crash log on a simulator if the app crashes during building through a simulator.

What is Exc_breakpoint?

Replies. This EXC_BREAKPOINT crash is something that Swift uses when it wants to crash your app deliberately. The last method name is clearly a mangled name, but it's a pretty good guess that it's a result of your app calling 'fatalError' to crash itself.


1 Answers

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

like image 55
Walt Sellers Avatar answered Oct 21 '22 14:10

Walt Sellers