Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Sep 2002 02:18:24 -0700 (PDT)
From:      Don Lewis <dl-freebsd@catspoiler.org>
To:        kris@obsecurity.org
Cc:        current@FreeBSD.ORG
Subject:   Re: Page faults from bento cluster (Re: Problems reading vmcores)
Message-ID:  <200209030918.g839IOwr073668@gw.catspoiler.org>
In-Reply-To: <20020901035735.GA9690@xor.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 31 Aug, Kris Kennaway wrote:
> Another one.  I have the cores if anyone needs to look at
> them..otherwise I'll stop posting these for now.
> 
> Kris
> 
> panic: page fault
> panic messages:
> ---
> Fatal trap 12: page fault while in kernel mode
> fault virtual address   = 0x4
> fault code              = supervisor read, page not present

> #6  0xc0399a48 in calltrap () at {standard input}:98
> #7  0xc021d91f in exec_elf32_imgact (imgp=0xda326bb4) at imgact_elf.c:607
> #8  0xc022a9a2 in execve (td=0xc484c240, uap=0xda326d10)
>     at /usr/src/sys/kern/kern_exec.c:280
> #9  0xc03a8a31 in syscall (frame=
>       {tf_fs = 47, tf_es = 47, tf_ds = 47, tf_edi = 135022716, tf_esi = 0, tf_ebp = -1077940704, tf_isp = -634229388, tf_ebx = 135022736, tf_edx = 135022736, tf_ecx = 135022895, tf_eax = 59, tf_trapno = 12, tf_err = 2, tf_eip = 134697908, tf_cs = 31, tf_eflags = 659, tf_esp = -1077940748, tf_ss = 47})
>     at /usr/src/sys/i386/i386/trap.c:1050
> #10 0xc0399a9d in Xint0x80_syscall () at {standard input}:140
> ---Can't read userspace from dump, or kernel process---

Line 607 is the inner if statement in the loop below:

        /* If the executable has a brand, search for it in the brand list. */
        if (brand_info == NULL) { 
                for (i = 0;  i < MAX_BRANDS;  i++) {
                        Elf_Brandinfo *bi = elf_brand_list[i];
                
                        if (bi != NULL &&
                            (hdr->e_ident[EI_OSABI] == bi->brand
                            || 0 ==
                            strncmp((const char *)&hdr->e_ident[OLD_EI_BRAND],
                            bi->compat_3_brand, strlen(bi->compat_3_brand)))) {
                                brand_info = bi;
                                break;
                        }
                }
        }


Structure member compat_3_brand is at offset 4, but I don't see how we
could be getting that far because of the 'bi != NULL' check.

Can you point gdb at the core file and print the values of bi and hdr?


BTW, this code has changed a lot since your kernel was generated.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200209030918.g839IOwr073668>