----- "Bernhard Walle" <bwalle@xxxxxxx> wrote: > * Dave Anderson [2008-08-25 09:27]: > > > > > > Unfortunately on an unstripped version, it drops all ~3000 ' t ' > symbols and > > only dumps type 'T' symbols. Probably it should run -Bn first, or > recognize > > otherwise that it's been stripped, and if it dumps no symbols, > [re]try it > > with -DBn? > > Ah, ok, I just checked with running crash that the output still > works, > but did not compare nm and nm -D. > > What about the new patch? > Hmmm, seems to be a of a lot of work for something that could be done in just a few lines? Since the first -Bn attempt with fd 2 redirected to /dev/null returns nothing to fgets(), how about just recognizing that, rewriting the command string, and continue? Something like: - sprintf(buf, "/usr/bin/nm -Bn %s, thisfile); + sprintf(buf, "/usr/bin/nm -Bn %s 2> /dev/null", thisfile); if (!(pipe = popen(buf, "r"))) { perror("pipe"); break; } + if (!(fgets(buf, 80, pipe))) + pclose(pipe); + sprintf(buf, "/usr/bin/nm -DBn %s", thisfile); + if (!(pipe = popen(buf, "r"))) { + perror("pipe"); + break; + } + } last_vaddr = 0; BZERO(symbol, BUFSIZE); It probably could be made even simpler than that if a quick-and-dirty pre-examination of thisfile could be done to determine whether it's stripped or not? Dave -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility