Pagefaulting in lock instruction
Tiago Jorge
tjpj at lasige.di.fc.ul.pt
Wed May 4 23:04:12 CEST 2005
>>
>>##################################################
>>
>>here it is the dissassembled output...
>>
>>##################################################
>>
>><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...
###############################################
[...]
/**
* sync stuff
*/
l4lock_t lock_running = L4LOCK_UNLOCKED,
lock_decided = L4LOCK_UNLOCKED,
lock_known_groups = L4LOCK_UNLOCKED,
lock_group = L4LOCK_UNLOCKED,
lock_operation = L4LOCK_UNLOCKED;
/**
* consensus object
*/
Consensus cons;
[...]
###############################################
the constructor is empty...
###############################################
Consensus::Consensus ()
{
}
###############################################
and these are the servers that i boot at runtime:
title Testes
root (hd0,0)
kernel /home/tiago/fiasco_builddir/rmgr -sigma0
modaddr 0x02000000
module /home/tiago/fiasco_builddir/main -nokdb -nowait
-serial_esc -comspeed 115200 -comport 1
module /home/tiago/fiasco_builddir/sigma0
module /home/tiago/fiasco_builddir/names
module /home/tiago/fiasco_builddir/dm_phys
module /home/tiago/fiasco_builddir/l4io
module /home/tiago/fiasco_builddir/rtc
module /home/tiago/fiasco_builddir/name_server
module /home/tiago/fiasco_builddir/flips-lxdrv
module /home/tiago/fiasco_builddir/mini_ifconfig eth0
10.10.5.197 255.255.0.0 10.10.255.255
module /home/tiago/fiasco_builddir/WOO 10.10.5.197 eth0
module /home/tiago/fiasco_builddir/WOO_test
>And who's the pager of the object/thread?
>
>
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
thanks
Tiago
More information about the l4-hackers
mailing list