Re: wie lese ich meine kerneldumps?

From: Christian Weisgerber <naddy(at)mips.inka.de>
Date: Fri, 14 Oct 2016 20:39:15 +0000 (UTC)

On 2016-10-13, Peter <pmc(at)citylink.dinoex.sub.org> wrote:

> Von da an gabs dann immerhin einen automatischen Reboot - allerdings
> keinen Dump, sondern die Meldung, dass die Platte, auf die gedumpt
> werden soll (also das swap device auf der SSD, das mglw. schuld an der
> Sache ist) I/O Error liefert. :(

Damit scheint das Problem ja schon gefunden. Wenn das Laufwerk
I/O-Fehler meldet, dann folgt spätestens beim Zugriff auf Filesystem-
strukturen die Panic. Es lohnt sich nicht, das weiter im Kernel zu
verfolgen.

> Looking closer:
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0; apic id = 00
> fault virtual address = 0x0

Sieht nach einem dereferenzierten NULL-Pointer aus. An Adresse 0
ist absichtlich nichts gemappt.

i386, really? Erst der Funktionsprolog:

> 0xc0e86160 <arc_buf_clone>: push %ebp
> 0xc0e86161 <arc_buf_clone+1>: mov %esp,%ebp
> 0xc0e86163 <arc_buf_clone+3>: push %ebx
> 0xc0e86164 <arc_buf_clone+4>: push %edi
> 0xc0e86165 <arc_buf_clone+5>: push %esi
> 0xc0e86166 <arc_buf_clone+6>: sub $0x10,%esp

> arc_buf_hdr_t *hdr = from->b_hdr;

> 0xc0e86169 <arc_buf_clone+9>: mov %ecx,%edi
> 0xc0e8616b <arc_buf_clone+11>: mov (%edi),%ebx *CRASH*

> uint64_t size = hdr->b_size;

> 0xc0e8616d <arc_buf_clone+13>: mov 0x24(%ebx),%eax
> 0xc0e86170 <arc_buf_clone+16>: mov %eax,-0x10(%ebp)

Wenn man die Datenstrukturen nachschlägt, dann passt das. Ja, sieht
so aus, als ob arc_buf_clone(NULL) aufgerufen wird.

Frage in die Runde: Warum wird das Argument in %ecx übergeben? Was
ist denn das für eine Calling Convention? Bei i386 läuft doch die
Parameterübergabe über den Stack. Ich finde im Netz vage Hinweise
auf "fastcall", aber nichts, dass FreeBSD das verwendet.

Äh, reden wir überhaupt von FreeBSD?

-- 
Christian "naddy" Weisgerber                          naddy(at)mips.inka.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 14 Oct 2016 - 22:40:08 CEST

search this site