This patch allows additional kerntypes files to be loaded as module
debuginfo (namelist) files.
It's a bit of a kludge, as sym -s module <file> still requires
that these types be associated with a loaded module. (but its use
would only be desirable when there are loaded modules, so that
restriction should not be a problem)
Tested against a live 2.6.27 kernel.
Diffed against crash-4.0-7.6
Signed-off-by: Cliff Wickman <cpw(a)sgi.com>
---
symbols.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
Index: crash-4.0-7.6.ia64/symbols.c
===================================================================
--- crash-4.0-7.6.ia64.orig/symbols.c
+++ crash-4.0-7.6.ia64/symbols.c
@@ -7992,8 +7992,12 @@ load_module_symbols(char *modref, char *
error(FATAL, "cannot determine object file format: %s\n",
namelist);
- if (!(bfd_get_file_flags(mbfd) & HAS_SYMS))
- error(FATAL, "no symbols in object file: %s\n", namelist);
+ if (LKCD_KERNTYPES() && file_elf_version(namelist) == EV_DWARFEXTRACT) {
+ goto add_symbols; /* no symbols, add the debuginfo */
+ }
+
+ if (!(bfd_get_file_flags(mbfd) & HAS_SYMS))
+ error(FATAL, "no symbols in object file: %s\n", namelist);
symcount = bfd_read_minisymbols(mbfd, FALSE, &minisyms, &size);
if (symcount < 0)