src/os/solaris/vm/os_solaris.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/os/solaris/vm/os_solaris.cpp	Mon Nov 12 10:52:08 2012
--- new/src/os/solaris/vm/os_solaris.cpp	Mon Nov 12 10:52:08 2012

*** 5795,5814 **** --- 5795,5804 ---- } } //--------------------------------------------------------------------------------- static address same_page(address x, address y) { intptr_t page_bits = -os::vm_page_size(); if ((intptr_t(x) & page_bits) == (intptr_t(y) & page_bits)) return x; else if (x > y) return (address)(intptr_t(y) | ~page_bits) + 1; else return (address)(intptr_t(y) & page_bits); } bool os::find(address addr, outputStream* st) { Dl_info dlinfo; memset(&dlinfo, 0, sizeof(dlinfo)); if (dladdr(addr, &dlinfo)) { #ifdef _LP64
*** 5830,5841 **** --- 5820,5831 ---- #endif st->cr(); if (Verbose) { // decode some bytes around the PC ! address begin = same_page(addr-40, addr); ! address end = same_page(addr+40, addr); ! address begin = clamp_address_in_page(addr-40, addr); ! address end = clamp_address_in_page(addr+40, addr); address lowest = (address) dlinfo.dli_sname; if (!lowest) lowest = (address) dlinfo.dli_fbase; if (begin < lowest) begin = lowest; Dl_info dlinfo2; if (dladdr(end, &dlinfo2) && dlinfo2.dli_saddr != dlinfo.dli_saddr

src/os/solaris/vm/os_solaris.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File