From 8f204ffd2624ceccf12c4d37aacb6dcdd8c3e934 Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Wed, 27 Feb 2013 11:32:49 +0100 Subject: [PATCH] nova: improve page fault debugging messages Ease debugging. Fixes #674 --- base-nova/src/base/pager/pager.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/base-nova/src/base/pager/pager.cc b/base-nova/src/base/pager/pager.cc index 8fe760d40..a642e9779 100644 --- a/base-nova/src/base/pager/pager.cc +++ b/base-nova/src/base/pager/pager.cc @@ -67,8 +67,9 @@ void Pager_object::_page_fault_handler() char client_name[Context::NAME_LEN]; myself->name(client_name, sizeof(client_name)); - PWRN("unresolvable page fault since recall failed, '%s'", - client_name); + PWRN("unresolvable page fault since recall failed, '%s' " + "address=0x%lx ip=0x%lx", client_name, ipc_pager.fault_addr(), + ipc_pager.fault_ip()); Native_capability pager_obj = obj->Object_pool::Entry::cap(); revoke(pager_obj.dst(), true); @@ -77,6 +78,11 @@ void Pager_object::_page_fault_handler() obj->_state.dead = true; } + + if (ret == 1) + PDBG("unhandled page fault, address=0x%lx ip=0x%lx", + ipc_pager.fault_addr(), ipc_pager.fault_ip()); + utcb->set_msg_word(0); utcb->mtd = 0; }