Hello all,
While porting an application to rump, I got stuck in an error shown below.
-------------------------------------------------------------------------------------------------------
Page fault at linear address 0xc, rip 0x103a0143, regs 0x30fc458, sp
0x30fc500, our_sp 0x30fc440, code 0
Thread: lwp
RIP: e030:[<00000000103a0143>]
RSP: e02b:00000000030fc500 EFLAGS: 00010206
RAX: 000000000388c8e0 RBX: 000000000388c8e0 RCX: 00000000081314a8
RDX: 0000000000000000 RSI: 00000000081314a8 RDI: 0000000002d70800
RBP: 00000000030fc5d0 R08: 0000000000000072 R09: 00000000ffffffff
R10: 00000000015f8be0 R11: 00000000103a0130 R12: 0000000000000000
R13: 00000000030fc568 R14: 0000000000000000 R15: 0000000002d70800
base is 0x30fc5d0 caller is 0x10008271
30fc4f0: 00 c5 0f 03 00 00 00 00 2b e0 00 00 00 00 00 00
30fc500: a8 14 13 08 00 00 00 00 15 96 04 10 00 00 00 00
30fc510: 50 5c b5 0a 00 00 00 00 28 c5 0f 03 00 00 00 00
30fc520: 00 00 00 00 fe ff ff ff 00 ad 5f 01 00 00 00 00
30fc5c0: 68 c5 0f 03 00 00 00 00 e8 c5 0f 03 00 00 00 00
30fc5d0: 38 c6 0f 03 00 00 00 00 71 82 00 10 00 00 00 00
30fc5e0: 30 13 13 08 00 00 00 00 00 13 13 08 00 00 00 00
30fc5f0: c0 0f 13 08 00 00 00 00 f8 c5 0f 03 00 00 00 00
103a0130: 89 84 24 00 a0 fe ff 55 48 83 ec 50 48 89 34 24
103a0140: 4c 8b f2 44 8b 42 0c 41 8b 58 0c 8b 7e 10 44 8b
103a0150: 57 0c 44 89 54 24 14 44 8b 4e 0c 8b eb 41 03 e9
103a0160: 44 8b dd 44 2b 5c 24 14 45 85 db 7f 71 41 8b 68
Pagetable walk from virt c, base 1b4c000:
L4 = 000000011a34d067 (0x1b4d000) [offset = 0]
L3 = 000000011a34e067 (0x1b4e000) [offset = 0]
L2 = 000000011a34f067 (0x1b4f000) [offset = 0]
L1 = 0000000000000000 [offset = 0]
-------------------------------------------------------------------------------------------------------
I'm testing the program with xen because I could not scroll the screen when
using kvm or qemu. Is there a way to scroll screen in the qemu window?
Keyboard and mouse are not working in that window. I'm using Ubuntu 16.04.
I searched addresses of symbols close to the instruction pointer but the
RIP is much higher than any symbols in binary. Does anyone assume that
where can I get some hint from the message? The same message is shown
almost every time at the same point but could not backtrace after
do_page_fault(). The stack and address values are fixed for each test
except RIP. RIP changes a little bit every time.
Can I trace rumprun application using Valgrind or Helgrind? It is
multi-threaded program, so helgrind will be helpful.
Thanks,
Myungho