----- "Cliff Wickman" <cpw(a)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?
Dave
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)