----- Forwarded Message ----- From: "Cliff Wickman" <cpw@xxxxxxx> To: "Dave Anderson" <anderson@xxxxxxxxxx> Sent: Thursday, January 29, 2009 4:23:22 PM GMT -05:00 US/Canada Eastern Subject: Re: [PATCH] crash: load of module types LKCD_KERNTYPES Hi Dave, On Thu, Jan 29, 2009 at 03:43:03PM -0500, Dave Anderson wrote: > > ----- "Cliff Wickman" <cpw@xxxxxxx> wrote: > > > 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) > > The patch looks fine (segregated), and I've queued it for the next release. > > But I'm not entirely clear what you mean by the comment above? You've > got this kerntypes object file that was created from a kernel module, and > you can load its debuginfo data individually with "mod -s module kerntypes". > What's the kludge again? Ok, not a kludge if the kerntypes was built from the module that you name in the mod -s command. But I would lump together the types from hundreds of modules into a single compact file that I can load if needed. When I mod -s this file it has to be associated with some loaded module. -Cliff > > > > > Tested against a live 2.6.27 kernel. > > Diffed against crash-4.0-7.6 > > > > Signed-off-by: Cliff Wickman <cpw@xxxxxxx> > > > > --- > > 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) -- Cliff Wickman Silicon Graphics, Inc. cpw@xxxxxxx (651) 683-3824 -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility