Page Fault

Tiago Jorge tjpj at lasige.di.fc.ul.pt
Wed Mar 16 12:34:06 CET 2005


>
>I have no idea, but you could debug this issue yourself. At this point
>you are in the Fiasco kernel debugger. Type
>
>  utb<SPACE>01d00249
>
>(this means: disassemble at task/address space 0xb at address 01d00249).
>
>And look at the output. Since you have loaded the symbols and lines,
>you should see the faulting source line in the disassmbly output. Just
>scroll the output a few lines up by hitting the Up-Arrow key (or Page-Up).
>
>If you don't see the error, just post the output of the above command.
>  
>
like you suggested i've disassembled the program, the output in the 
error zone is this:

/home/tiago/l4/pkg/failuredetector/server/src/FailureDetector.cc:30
 01d00244        add    $0xc,%esp
 01d00247        push   $0x0
 01d00249        push   $0x2
 01d0024b        push   $0x2
 01d0024d        call   0x1d01300 <socket>
 01d00252        add    $0x10,%esp
 01d00255        test   %eax,%eax
 01d00257        mov    %eax,(%ebx) <--- ERROR HERE!!!!!!
 01d00259        js     0x1d00344
/home/tiago/l4/pkg/failuredetector/server/src/FailureDetector.cc:38

the code is this one (i'll show the sequence of execution):

the program starts and invokes a function that starts an l4 thread using 
the short version.
the error lines are in the first function called by the thread (lines 30 
to 38):

int flags=0;

  printf("TOU ANTES DO SOCKET!!!!!!!\n");
  /* Create socket from which to send */
  if ((sock_fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
      perror("open error on socket");
      exit(1);
      printf("ERRROOOOOOOOO!!!!!!!\n");
  }

i've thought it was from perror and i've comment this block, but it gave 
the same error in the next lines.

must i reallocate the internal program thread? if so, how can i do it?

thanks

Tiago








More information about the l4-hackers mailing list