+static void panic_display_kernel_uuid(void) {
+ char tmp_kernel_uuid[sizeof(kernel_uuid)];
+
+ if (ml_nofault_copy((vm_offset_t) &kernel_uuid, (vm_offset_t) &tmp_kernel_uuid, sizeof(kernel_uuid)) != sizeof(kernel_uuid))
+ return;
+
+ if (tmp_kernel_uuid[0] != '\0')
+ kdb_printf("Kernel UUID: %s\n", tmp_kernel_uuid);
+}
+
+static void panic_display_kernel_aslr(void) {
+#if defined(__x86_64__)
+ if (vm_kernel_slide) {
+ kdb_printf("Kernel slide: 0x%016lx\n", vm_kernel_slide);
+ kdb_printf("Kernel text base: %p\n", (void *) vm_kernel_stext);
+ }
+#endif
+}
+
+static void panic_display_uptime(void) {
+ uint64_t uptime;
+ absolutetime_to_nanoseconds(mach_absolute_time(), &uptime);
+
+ kdb_printf("\nSystem uptime in nanoseconds: %llu\n", uptime);
+}
+
+extern const char version[];
+extern char osversion[];
+
+static volatile uint32_t config_displayed = 0;
+
+__private_extern__ void panic_display_system_configuration(void) {
+
+ panic_display_process_name();
+ if (OSCompareAndSwap(0, 1, &config_displayed)) {
+ char buf[256];
+ if (strlcpy(buf, PE_boot_args(), sizeof(buf)))
+ kdb_printf("Boot args: %s\n", buf);
+ kdb_printf("\nMac OS version:\n%s\n",
+ (osversion[0] != 0) ? osversion : "Not yet set");
+ kdb_printf("\nKernel version:\n%s\n",version);
+ panic_display_kernel_uuid();
+ panic_display_kernel_aslr();
+ panic_display_pal_info();
+ panic_display_model_name();
+ panic_display_uptime();
+ panic_display_zprint();
+#if CONFIG_ZLEAKS
+ panic_display_ztrace();
+#endif /* CONFIG_ZLEAKS */
+ kext_dump_panic_lists(&kdb_log);
+ }
+}
+
+extern zone_t first_zone;
+extern unsigned int num_zones, stack_total;
+extern unsigned long long stack_allocs;
+
+#if defined(__i386__) || defined (__x86_64__)
+extern unsigned int inuse_ptepages_count;
+extern long long alloc_ptepages_count;
+#endif
+
+extern boolean_t panic_include_zprint;
+
+__private_extern__ void panic_display_zprint()