I've a really strange invalid page fault. It happens when I try to start one of the applications inside my OS. What makes it stranger is that it happens only 1 time from 15-20 tries, so it's happening randomly...
The information I got my page fault handler is the following:
Code: Select all
Invalid page fault at 0x4000b160 (no region for address)
Error code: 4
EAX=0 EBX=0 ECX=0 EDX=0
ESI=0 EDI=0
EBP=0
CS:EIP=1b:40000150
SS:ESP=23:c0007fae
Process: taskbar thread: main
Memory context dump:
region count: 3
region #0
id: 70 name: ro
start: 40000000 size: 20480
flags: 1 alloc method: 1
region #1
id: 71 name: rw
start: 40005000 size: 8192
flags: 3 alloc method: 1
region #2
id: 72 name: stack
start: c0000000 size: 32768
flags: 13 alloc method: 2
Data at EIP:
e8 3b 35 0 0 eb fe 90 90 90 90 90 90 90 90 90
As you can see the fault was caused because the thread tried to acces the data at address: 0x4000b160. The memory content at the EIP location is also dumped and it is the same as I see in the objdump output. The real instruction there is the following:
Code: Select all
40000150 <_start>:
40000150: e8 3b 35 00 00 call 40003690 <__libc_start_main>
Now my question is the following: what the hell caused the page fault?
Thanks,
giszo