[Crash-utility] crash-4.0-3.14-sym.3.patch (was: modules and data/bss initialization)

Dave Anderson anderson at redhat.com
Tue Jan 2 21:04:10 UTC 2007


Castor Fu wrote:

>
> Hi Dave!
> Sorry about the regression.
> I looked further through the code, and have modified it to only add the symbols
> for which it has actually identified a matching section, and to do it in a way
> which supports whatever sections are defined.
> This doesn't explain why a match isn't being found in the ia64 case, but shouldat least avoid the regression in the
> s390x case.I've also attached a test which one could run which dumps output which mighthelp me fix things by tracing
> through loading the 'md5' module. By default the new code is off, as requested, and can be forced witha '-l' option to
> 'mod', e.g.crash> mod -l -s md5Thanks again for the testing, and hopefully this will work for most people.It would be
> great if someone could send me output from the rarerplatforms like ppc64 or 390 if it doesn't work.Happy New Year!
> -castor

Somebody forgot to QA this patch...    ;-)

Unfortunately, "mod -l -s module-name" won't work, nor will
"mod -l -S", because of the unique way that cmd_mod() handles
-s and -S -- which can optionally take additional "objfile" or "directory"
arguments respectively:

crash> mod -l -S
mod: -S is not a directory
Usage: mod [ -s module [objfile] | -d module | -S [directory] | -D | -r ]
Enter "help mod" for details.
crash> mod -l -s nfs
mod: /usr/lib/debug/lib/modules/2.4.21-37.ELsmp/kernel/fs/nfs: not an ELF format object file
Usage: mod [ -s module [objfile] | -d module | -S [directory] | -D | -r ]
Enter "help mod" for details.
crash>

So to get around that, you can just enter "mod -l" alone
prior to any -s or -S commands, which will just set the
flag.

But having done that, it actually does just the opposite,
because of backwards logic here:

@@ -7288,7 +7410,10 @@
                        strcpy(lm->mod_namelist, namelist);
                else
                        strncpy(lm->mod_namelist, namelist, MAX_MOD_NAMELIST-1);
-               goto add_symbols;
+                if (USE_V2_MOD_SYM()) {
+                        goto add_symbols;
+                }
+
        }

        if ((mbfd = bfd_openr(namelist, NULL)) == NULL)

It should be: "if (!USE_V2_MOD_SYM())".

Anyway, don't bother updating the patch for the above,
because I can keep testing with the two work-arounds.

I'd also appreciate any ppc64, s390 and s390x testers
out there...

Thanks,
  Dave

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20070102/f97be389/attachment.htm>


More information about the Crash-utility mailing list