[CRIS] Reading core file selects "wrong" mach
Orjan Friberg
orjan.friberg@axis.com
Mon Dec 13 15:12:00 GMT 2004
Mark Kettenis wrote:
> Date: Wed, 01 Dec 2004 14:59:55 +0100
> From: Orjan Friberg <orjan.friberg@axis.com>
>
> The reason seems to be the call to bfd_default_set_arch_mach (abfd,
> ebd->arch, 0) in elf_core_file_p in elfcore.h which will select the
> default mach for that arch. Directly after this we start reading the
> core file which results in a call to cris_elf_grok_prstatus (which
> fails because the default mach doesn't match the current mach).
>
> Without that call to bfd_default_set_arch_mach(), the
> architecture/machine wouldn't be set at all for the core file BFD.
Yes, I didn't mean to say that the call to bfd_default_set_arch_mach was wrong
or superfluous, I was just describing the effect it had.
> Is there an implicit assumption that the mach is not to be trusted
> when reading a core file?
>
> What do you mean by "not to be trusted"? It's simply always set to
> the default machine for ELF core files. For most architectures this
> is what makes the most sense anyway. Setting it to anything different
> from the default would involve some architecture-dependent code. I
What I meant was that I couldn't find any other port that looked at the mach in
their grok_prstatus/grok_prinfo, which led me to think there might be a reason
they didn't.
> guess the correct way to do this would be adding
> elf_set_mach_from_flags() to `struct elf_backend_data', and use that
> in elf_core_file_p() to set the machine after the architecture has
> been set.
Yes, that makes sense. Thanks.
I guess the answer to this is 'no', but would it be possible (and correct) to
use whatever machine was set when loading the corresponding program into GDB?
--
Orjan Friberg
Axis Communications
More information about the Gdb-patches
mailing list