lkcd
[Top] [All Lists]

Re: Alpha lcrash initialization problem - can't access memory

To: Brian Hall <brianw.hall@xxxxxxxxxx>
Subject: Re: Alpha lcrash initialization problem - can't access memory
From: Tom Morano <tjm@xxxxxxx>
Date: Thu, 27 Apr 2000 14:33:30 -0700
Cc: lkcd@xxxxxxxxxxx, "Matt D.Robinson" <yakker@xxxxxxxxxxxxxx>
References: <XFMail.20000427125442.brianw.hall@xxxxxxxxxx>
Sender: owner-lkcd@xxxxxxxxxxx
Brian Hall wrote:
> 
> I haven't changed anything in main(). After the command options are parsed 
> out,
> around main.c:198: (dies in register_cmds() )
> 
>         init_liballoc(0, 0, 0);
>         kl_init_kern_info();
>         register_cmds(cmdset);
>         arch_init(ofp);
> 
> Are you saying that init_liballoc() needs different arguments now? I followed
> the call sequence down for init_liballoc, and it appeared that values other
> than zero were assigned along the way. Changing to init_liballoc(100,100,100)
> had no effect (same traceback on the segfault). Upping that to 1000 didn't 
> help.

The parameters to init_liballoc() are OK. Based on this, I would guess that
some memory is getting stomped on in or below the kl_init_kern_info() function
call. You might check the block of memory causing the SEGV after returning
from the init_liballoc() call and before the kl_init_kern_info() call. See if it
looks OK at that point (I would guess the contents of this memory is change by
the time you get to register_cmds()). If that's the case, then walk through the 
kl_init_kern_info() function and see where the memory contents changes. From 
looking at the kl_init_kern_info() function, I can't see where the problem 
might 
occur (it basically just does symbol lookups and reads in the contents of 
memory 
into some local variables).  Since the Alpha is 64 bit, I assume that the amount
of
memory being read in for these values is 8 bytes instead of 4 (and that the
local
variables, NUM_PHYSPAGES and MEM_MAP have been changed also). Little things like
that might be a factor. Anyway, that's how I would approach narrowing it down.

Tom

<Prev in Thread] Current Thread [Next in Thread>