Crashlogs: What is "ARM Record Status"

I am trying to analyze iPhone crash reports.

And there is something that I do not 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 is r0, r1, rx ??

When I see that:

 r3: 0x00000000 

Is it possible to assume that the "object" r3 is equal to nil?

Any help to figure out other things about carshlogs is appreciated :-)

+5
source share
1 answer

These are the registers of the ARM processor, as for the stream in question.

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

Register "pc" contains the last address of the code that the processor tried to execute. This is useful to talk about the difference between EXC_BAD_ACCESS caused by an attempt to dereference a null pointer and try to execute code from a null address.

You can find the Apple documentation about using them here: http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARMv6FunctionCallingConventions.html

+5
source

Source: https://habr.com/ru/post/928044/


All Articles