[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: more info on boot crash

From: Marcus Brinkmann
Subject: Re: more info on boot crash
Date: Mon, 29 Jul 2002 19:28:38 +0200
User-agent: Mutt/1.4i

On Sun, Jul 28, 2002 at 04:37:09PM -0400, Roland McGrath wrote:
> But note that send-once
> right names are always unique and don't match the receive right name, so
> those don't tell you much.

Ayup, right.

> If in fact what's going on is a random wrong
> reply message then one thing to look at is step through
> __mig_get_reply_port and make sure it's doing the proper thread-local thing.
> 2904 is device_read_reply, which should be cause for suspicion.

We might have a winner.  Here is what I think I might have
found out:

In the thread which does the dir-lookup, the esp is 0x2b5c1.
All the funky __hurd_sigthread_stack_base, __hurd_sigthread_stack_end and
__hurd_sigthread_variables are 0.  So in __hurd_threadvar_location_from_sp,
it boils down to this expression:

 return &((unsigned long int *) ((__stack & __hurd_threadvar_stack_mask)
                                 + __hurd_threadvar_stack_offset))[__index];

Funny though that __hurd_threadvar_stack_mask is 0, too (in all threads, I

It all ends up as __hurd_threadvar_stack_offset[__index].

__hurd_threadvar_stack_offset was 0xbffffeec (for all threads).  As a
pointer to an unsigned int, it contained 33, which, if you remember, was the
port number of the reply port in the device_read message as well.

I set a break point at __mig_get_reply_port and saw 33 all the time, in more
than one thread (I think), but also 91 (might be the mod_refs trick, I got
confused at that point).  From what I saw in gdb, it appeared to me they all
evaluate to the same.  I could not run __hurd_threadvar_location manually in
gdb, it being extern inline, but I will try to run __mig_get_reply_port in
several threads.

If you need to know more, please let me know.


`Rhubarb is no Egyptian god.' GNU      http://www.gnu.org    marcus@gnu.org
Marcus Brinkmann              The Hurd http://www.gnu.org/software/hurd/

reply via email to

[Prev in Thread] Current Thread [Next in Thread]