1519 for (uint32_t i = 1; i < _dyld_image_count(); i++) { 1520 // Value for top_address is returned as 0 since we don't have any information about module size 1521 if (callback(_dyld_get_image_name(i), (address)_dyld_get_image_header(i), (address)0, param)) { 1522 return 1; 1523 } 1524 } 1525 return 0; 1526 #else 1527 return 1; 1528 #endif 1529 } 1530 1531 void os::get_summary_os_info(char* buf, size_t buflen) { 1532 // These buffers are small because we want this to be brief 1533 // and not use a lot of stack while generating the hs_err file. 1534 char os[100]; 1535 size_t size = sizeof(os); 1536 int mib_kern[] = { CTL_KERN, KERN_OSTYPE }; 1537 if (sysctl(mib_kern, 2, os, &size, NULL, 0) < 0) { 1538 #ifdef __APPLE__ 1539 strncpy(os, "Darwin", sizeof(os)); 1540 #elif __OpenBSD__ 1541 strncpy(os, "OpenBSD", sizeof(os)); 1542 #else 1543 strncpy(os, "BSD", sizeof(os)); 1544 #endif 1545 } 1546 1547 char release[100]; 1548 size = sizeof(release); 1549 int mib_release[] = { CTL_KERN, KERN_OSRELEASE }; 1550 if (sysctl(mib_release, 2, release, &size, NULL, 0) < 0) { 1551 // if error, leave blank 1552 strncpy(release, "", sizeof(release)); 1553 } 1554 snprintf(buf, buflen, "%s %s", os, release); 1555 } 1556 1557 void os::print_os_info_brief(outputStream* st) { 1558 os::Posix::print_uname_info(st); 1559 } 1560 1561 void os::print_os_info(outputStream* st) { 1562 st->print("OS:"); 1563 1564 os::Posix::print_uname_info(st); 1565 1566 os::Bsd::print_uptime_info(st); 1567 1568 os::Posix::print_rlimit_info(st); 1569 1570 os::Posix::print_load_average(st); 1571 1572 VM_Version::print_platform_virtualization_info(st); 1573 } | 1519 for (uint32_t i = 1; i < _dyld_image_count(); i++) { 1520 // Value for top_address is returned as 0 since we don't have any information about module size 1521 if (callback(_dyld_get_image_name(i), (address)_dyld_get_image_header(i), (address)0, param)) { 1522 return 1; 1523 } 1524 } 1525 return 0; 1526 #else 1527 return 1; 1528 #endif 1529 } 1530 1531 void os::get_summary_os_info(char* buf, size_t buflen) { 1532 // These buffers are small because we want this to be brief 1533 // and not use a lot of stack while generating the hs_err file. 1534 char os[100]; 1535 size_t size = sizeof(os); 1536 int mib_kern[] = { CTL_KERN, KERN_OSTYPE }; 1537 if (sysctl(mib_kern, 2, os, &size, NULL, 0) < 0) { 1538 #ifdef __APPLE__ 1539 strncpy(os, "Darwin", sizeof(os)); 1540 #elif __OpenBSD__ 1541 strncpy(os, "OpenBSD", sizeof(os)); 1542 #else 1543 strncpy(os, "BSD", sizeof(os)); 1544 #endif 1545 } 1546 1547 char release[100]; 1548 size = sizeof(release); 1549 int mib_release[] = { CTL_KERN, KERN_OSRELEASE }; 1550 if (sysctl(mib_release, 2, release, &size, NULL, 0) < 0) { 1551 // if error, leave blank 1552 strncpy(release, "", sizeof(release)); 1553 } 1554 1555 #ifdef __APPLE__ 1556 char osproductversion[100]; 1557 size_t sz = sizeof(osproductversion); 1558 int ret = sysctlbyname("kern.osproductversion", osproductversion, &sz, NULL, 0); 1559 if (ret == 0) { 1560 char build[100]; 1561 size = sizeof(build); 1562 int mib_build[] = { CTL_KERN, KERN_OSVERSION }; 1563 if (sysctl(mib_build, 2, build, &size, NULL, 0) < 0) { 1564 snprintf(buf, buflen, "%s %s, macOS %s", os, release, osproductversion); 1565 } else { 1566 snprintf(buf, buflen, "%s %s, macOS %s (%s)", os, release, osproductversion, build); 1567 } 1568 } else 1569 #endif 1570 snprintf(buf, buflen, "%s %s", os, release); 1571 } 1572 1573 void os::print_os_info_brief(outputStream* st) { 1574 os::Posix::print_uname_info(st); 1575 } 1576 1577 void os::print_os_info(outputStream* st) { 1578 st->print("OS:"); 1579 1580 os::Posix::print_uname_info(st); 1581 1582 os::Bsd::print_uptime_info(st); 1583 1584 os::Posix::print_rlimit_info(st); 1585 1586 os::Posix::print_load_average(st); 1587 1588 VM_Version::print_platform_virtualization_info(st); 1589 } |