Understanding the oops code core

in the oops ARM kernel, the following logs are printed in the kernel logs -

<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 

Sometimes this code doesn't work -

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

and in most magazines -

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

Can someone explain the purpose of this code and its meaning?

+5
source share
1 answer

The information you provide is pretty small.

As in arch / arm / kernel / traps.c

You will find

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

Actually the whole stack trace will be much more useful, you will find the location of the error and disassembly to find the real place in the code.

Just guessing, you touched the NULL == pointer

0
source

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


All Articles