Date: Tue, 20 Jun 2000 16:07:09 +0200 (MET DST)
From: "Maciej W. Rozycki" <[EMAIL PROTECTED]>
Hi,
The generic ELF core handling functions in core-regset.c use gregset_t
and fpregset_t types to access registers. Linux systems use elf_gregset_t
and elf_fpregset_t, though. They have different sizes and layout. While
host-specific files take this into account, core-regset.c does not. As a
result it rejects registers from cores complaining of the size of the area
being incorrect.
That's basically right. What flavor of Linux are you using?
Linux/x86 doesn't use core-regset.c, so it doesn't suffer from this
braindamage. There are some Linux variants where the gregset_t and
elf_gregset_t are one and the same type. Other Linuxen have
maintainers who are still confused by this stuff :-(.
The following is a small update I successfully use. I propose it for an
inclusion. Alternatively, a new Linux-specific file might be created, but
that might unnecessarily complicate maintenance -- only type names differ
but files would have to be kept in sync forever.
Some work has been done on rationalizing the regset mess already. GDB
now defines a type gdb_gregset_t (and gdb_fpregset_t), which should be
a typedef for elf_gregset_t on Linux. I think core-regset.c should use
these types instead.
Mark