2014-09-16 2 views
4

в ядре Упс из ARM следующих журналов печатаются в журналах ядра -понимание ядра упс код ошибки

<1>[ 4205.112835] I[0:swapper/0:0] [c0] Unable to handle kernel paging request at virtual address ff898580 
<1>[ 4205.112874] I[0:swapper/0:0] [c0] pgd = ec3c4000 
<1>[ 4205.112901] I[0:swapper/0:0] [c0] [ff898580] *pgd=00000000 
<0>[ 4205.112939] I[0:swapper/0:0] [c0] Internal error: Oops: 80000005 #1] PREEMPT SMP ARM 

Иногда упс этот код -

Internal error: Oops - undefined instruction: 0 [#1] PREEMPT SMP ARM 

и в большинстве журналов это -

Internal error: Oops: 5 [#1] PREEMPT SMP ARM 

Может кто-нибудь объяснить цель этого кода и его смысл?

+0

Не могли бы вы предоставить весь стек? 'undefined инструкция' довольно странная. Это означает, что компилятор преобразовал ваш код в инструкцию, которую аппаратное обеспечение не поддерживает. Однако это могло бы быть чем-то простым, как отключенные операции с плавающей запятой. см. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0363g/Beijdcef.html –

ответ

0

Предоставленная вам информация немногочисленна.

Как и в arch/arm/kernel/traps.c

Вы найдете

printk(KERN_EMERG "Internal error: %s: %x [#%d]" S_PREEMPT S_SMP S_ISA "\n", str, err, ++die_counter); 

На самом деле весь стек след будет гораздо более полезным, вы найдете расположение ошибок и разборке найти реальное место в коде.

Просто угадывая, вы коснулись указателя NULL ==