##################################################
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