Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Jan 2001 18:57:09 +1030
From:      Greg Lehey <grog@lemis.com>
To:        Roman Shterenzon <roman@xpert.com>
Cc:        hackers@freebsd.org
Subject:   Dump analysis (was: Ideas? (fwd))
Message-ID:  <20010108185709.D83353@wantadilla.lemis.com>
In-Reply-To: <Pine.LNX.4.30.0101081003520.32287-100000@jamus.xpert.com>; from roman@xpert.com on Mon, Jan 08, 2001 at 10:04:44AM %2B0200
References:  <Pine.LNX.4.30.0101081003520.32287-100000@jamus.xpert.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday,  8 January 2001 at 10:04:44 +0200, Roman Shterenzon wrote:
> * Roman Shterenzon <roman@xpert.com> [010107 10:24] wrote:
>> Hi,
>>
>> Could you please take a look at :
>> http://www.freebsd.org/cgi/query-pr.cgi?pr=24019
>> It's my friend's PR. Can you give me some hints on how can I debug this
>> issue. I'm completely puzzled here.
>> It panics on "goto out" with page fault. What I understand from it is that
>> the block at the address it tries to jmp to isn't present. But it's kernel
>> code which is never swapped out. Does it mean that the address was
>> rewritten? If it's so, what can rewrite this address? Ideas?

My first suspicion here is that the sources are out of sync with the
kernel you're debugging.  It's very important to ensure that they are
absolutely in sync.  Here are a couple of incantations to throw at
this dump (you may recognize the second one from an earlier mail
exchange):

 (kgdb) x/10i epread
 (kgdb) x/10i 0xc012a038

The first one should show  the beginning of the function; if it's in
sync it will look like (modulo addresses):

(kgdb) x/10i epread
0xc0165f8c <epread>:    push   %ebp
0xc0165f8d <epread+1>:  mov    %esp,%ebp
0xc0165f8f <epread+3>:  sub    $0x1c,%esp
0xc0165f92 <epread+6>:  push   %edi
0xc0165f93 <epread+7>:  push   %esi
0xc0165f94 <epread+8>:  push   %ebx
0xc0165f95 <epread+9>:  mov    0x8(%ebp),%eax
0xc0165f98 <epread+12>: mov    %eax,0xfffffff4(%ebp)
0xc0165f9b <epread+15>: mov    0x118(%eax),%edx
0xc0165fa1 <epread+21>: add    $0x8,%edx

In particular, those first two instructions are at the beginning of
just about every function, so if you don't find them, you should check
whether your code is in sync.

>> P.S. Can it be due to faulty hardware?

Or faulty Italian cuisine?  In each case, not if it's repeatable.

Greg
--
Finger grog@lemis.com for PGP public key
See complete headers for address and phone numbers


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




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