Hi,
 
Thanks for your help.
 

On Friday 12 May 2006 10:48, Wei Shen wrote:
> I run con-ux with:
> ./fiasco -G 800x600@16 -m 128 -l names -l dm_phys -l con-ux

You might add ``-l log'' here.
 
I think it is not the cause :-)

 

Please disassemble your con-ux binary, the instruction at the EIP is
important:

objdump -ld 0x00b0dc7f
 
00b0dc74 <trampoline>:
trampoline():
  b0dc74:       e8 37 00 00 00          call   b0dcb0 <int80_warning>
  b0dc79:       8d 64 24 04             lea    0x4(%esp),%esp
  b0dc7d:       cf                      iret
  b0dc7e:       90                      nop
  b0dc7f:       90                      nop
 
But as I have noted, I think the original position of the error is in function sw_fill in pslim.c:
...
 if (vc->do_drty)
    vc->do_drty(x, y, w, h);
...
 
"vc->do_drty" equals 0x00b0d73c here which seems to be invalid. And I guess "new->do_drty" should be initialized to "fg_do_drty" (NULL) in function do_switch in main.c.
 
/usr/src/l4/pkg/l4con/server/src/con_hw/iomem.c:120
  b0d735:       08 a3 23 b2 00 89       or     %ah,0x8900b223(%ebx)
  b0d73b:       55                      push   %ebp
  b0d73c:       0c 8d                   or     $0x8d,%al
/usr/src/l4/pkg/l4con/server/src/con_hw/iomem.c:125
  b0d73e:       65                      gs
  b0d73f:       f4                      hlt
  b0d740:       5b                      pop    %ebx
  b0d741:       5e                      pop    %esi
  b0d742:       5f                      pop    %edi
  b0d743:       5d                      pop    %ebp
/usr/src/l4/pkg/l4con/server/src/con_hw/iomem.c:120
  b0d744:       e9 23 a1 00 00          jmp    b1786c <LOG_printf>
 
Regards,
 
Wei