This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [PATCH/RFA] Don't gdbarch_init for core files
Andrew Cagney wrote:
>
> > How about this?
> >
> > * corelow.c (core_open): If the core's arch is known and
> > different from the current, reinitialize gdbarch based on
> > the core file.
> >
>
> Hmm, thing is:
>
> > - set_gdbarch_from_file (core_bfd);
> > + /* If the core's arch is known and different from the current,
> > + reinitialize gdbarch based on the core file. */
> > +
> > + current_arch_info = gdbarch_bfd_arch_info (current_gdbarch);
> > + if (core_bfd->arch_info->arch != bfd_arch_unknown
> > + && core_bfd->arch_info->arch != current_arch_info->arch)
> > + set_gdbarch_from_file (core_bfd);
>
> is [almost] no different to deleting the call - GDB isn't yet built with
> multiple architectures so the two architectures will always be identical.
Will they? What if, for instance, gdb defaults to sparc32, but
the corefile is sparc64?
> Looking at the date/author of the original patch [and making a wild
> guess], I think the original change was related to debugging 32 bit core
> files on a SPARC64 system. Michael?
Correct. And I think the worrisome case is when there is no symbol
file.
> For the moment, bfd's compatible() might be the best test (does it give
> the effect you're looking for?). The other approach is to enhance the
> relevant architecture vectors so that they don't change the architecture
> for cases like this. I think, eventually, the ABI/OS stuff will help
> solve this problem. Anway, what ever the change, it will need plenty
> comments :-)
>
> enjoy,
> Andrew