From 96a34bfa35667254759d989488c7b84fbb3f813c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 24 Aug 2004 21:47:11 +0000 Subject: [PATCH] Improved debug output - you know get the exact address of a page fault, not rounded to the page offset. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8633 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kernel/core/vm/vm.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/kernel/core/vm/vm.c b/src/kernel/core/vm/vm.c index 9a5cd97bb6..f647002c64 100755 --- a/src/kernel/core/vm/vm.c +++ b/src/kernel/core/vm/vm.c @@ -2157,7 +2157,7 @@ vm_page_fault(addr_t address, addr_t fault_address, bool is_write, bool is_user, address, fault_address); } } else { - dprintf("vm_page_fault: killing team 0x%lx\n", thread_get_current_thread()->team->id); + dprintf("vm_page_fault: killing team 0x%lx, ip 0x%lx\n", thread_get_current_thread()->team->id, fault_address); kill_team(team_get_current_team_id()); } } @@ -2167,7 +2167,7 @@ vm_page_fault(addr_t address, addr_t fault_address, bool is_write, bool is_user, static int -vm_soft_fault(addr_t address, bool is_write, bool is_user) +vm_soft_fault(addr_t originalAddress, bool is_write, bool is_user) { vm_address_space *aspace; vm_virtual_map *map; @@ -2178,13 +2178,14 @@ vm_soft_fault(addr_t address, bool is_write, bool is_user) off_t cache_offset; vm_page dummy_page; vm_page *page = NULL; + addr_t address; int change_count; int err; // dprintf("vm_soft_fault: thid 0x%x address 0x%x, is_write %d, is_user %d\n", // thread_get_current_thread_id(), address, is_write, is_user); - address = ROUNDOWN(address, PAGE_SIZE); + address = ROUNDOWN(originalAddress, PAGE_SIZE); if (IS_KERNEL_ADDRESS(address)) { aspace = vm_get_kernel_aspace(); @@ -2212,7 +2213,7 @@ vm_soft_fault(addr_t address, bool is_write, bool is_user) if (region == NULL) { release_sem_etc(map->sem, READ_COUNT, 0); vm_put_aspace(aspace); - dprintf("vm_soft_fault: va 0x%lx not covered by region in address space\n", address); + dprintf("vm_soft_fault: va 0x%lx not covered by region in address space\n", originalAddress); return ERR_VM_PF_BAD_ADDRESS; // BAD_ADDRESS } @@ -2226,7 +2227,7 @@ vm_soft_fault(addr_t address, bool is_write, bool is_user) if (is_write && (region->lock & (B_WRITE_AREA | (is_user ? 0 : B_KERNEL_WRITE_AREA))) == 0) { release_sem_etc(map->sem, READ_COUNT, 0); vm_put_aspace(aspace); - dprintf("write access attempted on read-only region 0x%lx at %p\n", region->id, (void *)address); + dprintf("write access attempted on read-only region 0x%lx at %p\n", region->id, (void *)originalAddress); return ERR_VM_PF_BAD_PERM; // BAD_PERMISSION }