[Crash-utility] Fwd: [PATCH] crash: load of module types LKCD_KERNTYPES

Dave Anderson anderson at redhat.com
Thu Jan 29 21:42:35 UTC 2009


----- Forwarded Message -----
From: "Cliff Wickman" <cpw at sgi.com>
To: "Dave Anderson" <anderson at redhat.com>
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 at sgi.com> 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 at 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)

-- 
Cliff Wickman
Silicon Graphics, Inc.
cpw at sgi.com
(651) 683-3824




More information about the Crash-utility mailing list