This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Question regarding i386v4-nat.c:supply_gregset and fill_gregset


   Date: Tue, 6 Aug 2002 18:04:26 -0700
   From: Joel Brobecker <brobecker@gnat.com>

   Hello Mark,

Sorry for the slow response.  I was having a vacation :-).

   But there is one difference that causes some grief on interix, and I
   had to modify these 2 functions like this to make them to work for
   interix:

	-  greg_t *regp = (greg_t *) gregsetp;
	+  greg_t *regp = (greg_t *) & gregsetp->gregs;

   Indeed, on Interix, the gregs buffer is not located at the begining
   of the gregset_t structure. So the function were reading/writting at
   the wrong location.

Hmm...

   The trouble is I don't have any machine handy to verify this change
   on the other platforms. I have the feeling, though, that type gregset_t
   is not always a structure, and hence makes my change only valid for
   interix.

Yup, it is as Daniel already explained.

   If this is the case, then I am afraid we won't be able to reuse
   i386v4-nat.c that easily. Maybe we should implement 2 new functions
   similar to i387_supply_fsave and i387_fill_fsave (in i386-nat.[hc]?):

      i386_supply_gregset (greg_t *gregp);
      i386_fill_gregset (greg_t *gregp, int regno);

   both i386v4-nat.c and i386-interix-nat.c would use them to implement
   supply/fill_gregset.

   What do you think?

That would be a valid approach (although I would name the functions
i386_supply_gregs and i386_fill_gregs).  On the other hand, I wouldn't
object to duplicating the small bits of code for Interix and deal with
it later.  I'll have to rethink these functions sooner or later if I
want to support cross-debugging of core files.

Mark


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]