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

*** 168,178 **** --- 168,177 ---- //////////////////////////////////////////////////////////////////////////////// // utility functions static int SR_initialize(); static int SR_finalize(); julong os::available_memory() { return Bsd::available_memory(); }
*** 2766,2779 **** --- 2765,2774 ---- // Save signal flag os::Bsd::set_our_sigflags(SR_signum, act.sa_flags); return 0; } static int SR_finalize() { return 0; } // returns true on success and false on error - really an error is fatal // but this seems the normal response to library errors static bool do_suspend(OSThread* osthread) { // mark as suspended and send signal
*** 3576,3595 **** --- 3571,3580 ---- } //////////////////////////////////////////////////////////////////////////////// // debug support static address same_page(address x, address y) { int 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)) { st->print(PTR_FORMAT ": ", addr);
*** 3609,3620 **** --- 3594,3605 ---- } 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/bsd/vm/os_bsd.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File