Pagefaulting in lock instruction
Adam Lackorzynski
adam at os.inf.tu-dresden.de
Fri May 6 11:57:44 CEST 2005
On Wed May 04, 2005 at 22:04:12 +0100, Tiago Jorge wrote:
> >><Consensus::startConsensus()>:
> >>/home/tiago/l4/pkg/WOO/server/src/Consensus_udp.cc:178
> >>01db6a50 push %ebp
> >>01db6a51 mov %esp,%ebp
> >>01db6a53 push %edi
> >>01db6a54 push %esi
> >>01db6a55 push %ebx
> >>01db6a56 sub $0xc37c,%esp
> >>01db6a5c mov 8(%ebp),%ebx
> >>/home/tiago/l4/include/l4/lock/lock.h:97
> >>01db6a5f lea 0xc3c8(%ebx),%eax
> >>01db6a65 mov %eax,0xffff3c84(%ebp) <<--- PAGE FAULT
> >>HERE!!!!!!!!!!!!
> >>/home/tiago/l4/include/l4/lock/lock.h:98
> >>01db6a6b call 0x1dc0e80 <l4thread_myself>
> >>/home/tiago/l4/include/l4/lock/lock.h:101
> >>01db6a70 mov 0xffff3c84(%ebp),%ecx
> >>/home/tiago/l4/include/l4/lock/lock.h:98
> >>01db6a76 mov %eax,0xffff3c80(%ebp)
> >>/home/tiago/l4/include/l4/lock/lock.h:101
> >>01db6a7c test %ecx,%ecx
> >>01db6a7e je 0x1db6aa6
> >>
> >>##################################################
> >>
> >>as of my inexperience with Fiasco debug issues... what might be causing
> >>this?
> >>
> >>
> >
> >
> >Looking at the asm I wonder how the object is initialized and where does
> >it get its memory from?
> >
> >
> the object its initialized as a global variable of my main program...
>
> Consensus::Consensus ()
> {
> }
Just to make sure, is it called?
> so i think the pager it's the default... so i don't know why the program
> it's goig to try and get the instruction at 0xffff3c84
Well, this is just a (negative) offset to %ebp, and %ebp is just the
start of the stack, so it's writing somewhere on the stack.
But I can only guess further. What about tar'ing up your pkg and sending
it to me (privately)? So I can give it a spin and maybe say something
for valuable.
Adam
--
Adam adam at os.inf.tu-dresden.de
Lackorzynski http://os.inf.tu-dresden.de/~adam/
More information about the l4-hackers
mailing list