I have access to a system whose crashdump extraction mechanism unfortunately trashes the first few hundred kilobytes of physical memory, which includes the page tables at swapper_pg_dir. crash does chug along and remains quite useful without these page tables since much of the interesting information is in the direct mapped region, but it disables the use of the unwind tables because it fails to read the module unwind tables, which are placed at a non-direct-mapped address. The patch below allows unwind tables to be used only for core kernel addresses if the module tables are inaccessible. Alternatively, we could perhaps not attempt to read the module unwind tables when --no_modules is specified. Rabin diff --git a/unwind_arm.c b/unwind_arm.c index 6554804..a21c592 100644 --- a/unwind_arm.c +++ b/unwind_arm.c @@ -148,8 +148,6 @@ init_unwind_tables(void) if (!init_module_unwind_tables()) { error(WARNING, "UNWIND: failed to initialize module unwind tables\n"); - free_kernel_unwind_table(); - return FALSE; } /* @@ -347,6 +345,7 @@ fail: } free(module_unwind_tables); + module_unwind_tables = NULL; return FALSE; } @@ -536,7 +535,7 @@ search_table(ulong ip) */ if (is_core_kernel_text(ip)) { return kernel_unwind_table; - } else { + } else if (module_unwind_tables) { struct unwind_table *tbl; for (tbl = &module_unwind_tables[0]; tbl->idx; tbl++) { -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility