Crashlogs: что такое "ARM Thread State" - PullRequest
5 голосов
/ 12 июля 2011

Я пытаюсь проанализировать отчеты о сбоях iPhone.

И есть кое-что, чего я не понимаю:

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

Что такое r0, r1, rx ??

Когда я вижу это:

r3: 0x00000000

Можно ли предположить, что "объект" r3 равен нулю?

Любая помощь, чтобы понять другие вещи о carshlogs приветствуется: -)

1 Ответ

6 голосов
/ 25 декабря 2011

Это регистры процессора ARM, какими они были для рассматриваемого потока.

Для большинства регистров rX их можно лучше рассматривать как указатели на объекты, а не на сами объекты. Однако они также могут содержать прямые значения или адреса.

Регистр 'pc' содержит последний адрес кода, который процессор пытался выполнить. Это полезно для определения разницы между EXC_BAD_ACCESS, вызванной попыткой разыменования нулевого указателя и попыткой выполнить код с нулевого адреса.

Документацию Apple по их использованию вы можете найти здесь: http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARMv6FunctionCallingConventions.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...