[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