2229 os::available_memory() >> 10);
2230 st->print(", swap " UINT64_FORMAT "k",
2231 ((jlong)si.totalswap * si.mem_unit) >> 10);
2232 st->print("(" UINT64_FORMAT "k free)",
2233 ((jlong)si.freeswap * si.mem_unit) >> 10);
2234 st->cr();
2235 }
2236
2237 void os::pd_print_cpu_info(outputStream* st) {
2238 st->print("\n/proc/cpuinfo:\n");
2239 if (!_print_ascii_file("/proc/cpuinfo", st)) {
2240 st->print(" <Not Available>");
2241 }
2242 st->cr();
2243 }
2244
2245 void os::print_siginfo(outputStream* st, void* siginfo) {
2246 const siginfo_t* si = (const siginfo_t*)siginfo;
2247
2248 os::Posix::print_siginfo_brief(st, si);
2249
2250 if (si && (si->si_signo == SIGBUS || si->si_signo == SIGSEGV) &&
2251 UseSharedSpaces) {
2252 FileMapInfo* mapinfo = FileMapInfo::current_info();
2253 if (mapinfo->is_in_shared_space(si->si_addr)) {
2254 st->print("\n\nError accessing class data sharing archive." \
2255 " Mapped file inaccessible during execution, " \
2256 " possible disk/network problem.");
2257 }
2258 }
2259 st->cr();
2260 }
2261
2262
2263 static void print_signal_handler(outputStream* st, int sig,
2264 char* buf, size_t buflen);
2265
2266 void os::print_signal_handlers(outputStream* st, char* buf, size_t buflen) {
2267 st->print_cr("Signal Handlers:");
2268 print_signal_handler(st, SIGSEGV, buf, buflen);
2269 print_signal_handler(st, SIGBUS , buf, buflen);
2270 print_signal_handler(st, SIGFPE , buf, buflen);
2271 print_signal_handler(st, SIGPIPE, buf, buflen);
2272 print_signal_handler(st, SIGXFSZ, buf, buflen);
2273 print_signal_handler(st, SIGILL , buf, buflen);
2274 print_signal_handler(st, INTERRUPT_SIGNAL, buf, buflen);
2275 print_signal_handler(st, SR_signum, buf, buflen);
2276 print_signal_handler(st, SHUTDOWN1_SIGNAL, buf, buflen);
2277 print_signal_handler(st, SHUTDOWN2_SIGNAL , buf, buflen);
2278 print_signal_handler(st, SHUTDOWN3_SIGNAL , buf, buflen);
|
2229 os::available_memory() >> 10);
2230 st->print(", swap " UINT64_FORMAT "k",
2231 ((jlong)si.totalswap * si.mem_unit) >> 10);
2232 st->print("(" UINT64_FORMAT "k free)",
2233 ((jlong)si.freeswap * si.mem_unit) >> 10);
2234 st->cr();
2235 }
2236
2237 void os::pd_print_cpu_info(outputStream* st) {
2238 st->print("\n/proc/cpuinfo:\n");
2239 if (!_print_ascii_file("/proc/cpuinfo", st)) {
2240 st->print(" <Not Available>");
2241 }
2242 st->cr();
2243 }
2244
2245 void os::print_siginfo(outputStream* st, void* siginfo) {
2246 const siginfo_t* si = (const siginfo_t*)siginfo;
2247
2248 os::Posix::print_siginfo_brief(st, si);
2249 #if INCLUDE_CDS
2250 if (si && (si->si_signo == SIGBUS || si->si_signo == SIGSEGV) &&
2251 UseSharedSpaces) {
2252 FileMapInfo* mapinfo = FileMapInfo::current_info();
2253 if (mapinfo->is_in_shared_space(si->si_addr)) {
2254 st->print("\n\nError accessing class data sharing archive." \
2255 " Mapped file inaccessible during execution, " \
2256 " possible disk/network problem.");
2257 }
2258 }
2259 #endif
2260 st->cr();
2261 }
2262
2263
2264 static void print_signal_handler(outputStream* st, int sig,
2265 char* buf, size_t buflen);
2266
2267 void os::print_signal_handlers(outputStream* st, char* buf, size_t buflen) {
2268 st->print_cr("Signal Handlers:");
2269 print_signal_handler(st, SIGSEGV, buf, buflen);
2270 print_signal_handler(st, SIGBUS , buf, buflen);
2271 print_signal_handler(st, SIGFPE , buf, buflen);
2272 print_signal_handler(st, SIGPIPE, buf, buflen);
2273 print_signal_handler(st, SIGXFSZ, buf, buflen);
2274 print_signal_handler(st, SIGILL , buf, buflen);
2275 print_signal_handler(st, INTERRUPT_SIGNAL, buf, buflen);
2276 print_signal_handler(st, SR_signum, buf, buflen);
2277 print_signal_handler(st, SHUTDOWN1_SIGNAL, buf, buflen);
2278 print_signal_handler(st, SHUTDOWN2_SIGNAL , buf, buflen);
2279 print_signal_handler(st, SHUTDOWN3_SIGNAL , buf, buflen);
|