* Makefile.in (TAGS): Use variables directly, rather than using
authorJim Kingdon <jkingdon@engr.sgi.com>
Sat, 19 Mar 1994 18:49:50 +0000 (18:49 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Sat, 19 Mar 1994 18:49:50 +0000 (18:49 +0000)
find, to locate TM_FILE, XM_FILE, and NAT_FILE.  This is faster
and means that these filenames no longer need be unique across all
the config/* directories.
* configure.in: Put the config/*/ into TM_FILE, etc.

* m68k-stub.c (computeSignal): Return SIGFPE, not SIGURG, for chk
and trapv exceptions.

* target.h (struct section_table), objfiles.h (struct obj_section):
Change name of field sec_ptr to the_bfd_section.  More mnemonic
and avoids the (sort of, for the ptx compiler) name clash with
the name of the typedef.
* exec.c, xcoffexec.c, sparc-tdep.c, rs6000-nat.c, osfsolib.c,
solib.c, irix5-nat.c, objfiles.c, remote.c: Change users.

* utils.c: Include readline.h.
* Makefile.in (utils.o): Add dependency.

* remote.c (getpkt): Add support for run-length encoding.

gdb/ChangeLog
gdb/Makefile.in
gdb/configure.in
gdb/irix5-nat.c
gdb/objfiles.c
gdb/objfiles.h
gdb/osfsolib.c
gdb/remote.c
gdb/rs6000-nat.c
gdb/sparc-tdep.c
gdb/xcoffexec.c

index 54d26a09feb7ca012a54a758d0d2f85539143115..8f2135ce93f50e3109180d4e85b625b75dc42934 100644 (file)
@@ -1,3 +1,26 @@
+Sat Mar 19 08:51:12 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+       * Makefile.in (TAGS): Use variables directly, rather than using
+       find, to locate TM_FILE, XM_FILE, and NAT_FILE.  This is faster
+       and means that these filenames no longer need be unique across all
+       the config/* directories.
+       * configure.in: Put the config/*/ into TM_FILE, etc.
+
+       * m68k-stub.c (computeSignal): Return SIGFPE, not SIGURG, for chk
+       and trapv exceptions.
+
+       * target.h (struct section_table), objfiles.h (struct obj_section):
+       Change name of field sec_ptr to the_bfd_section.  More mnemonic
+       and avoids the (sort of, for the ptx compiler) name clash with
+       the name of the typedef.
+       * exec.c, xcoffexec.c, sparc-tdep.c, rs6000-nat.c, osfsolib.c,
+       solib.c, irix5-nat.c, objfiles.c, remote.c: Change users.
+
+       * utils.c: Include readline.h.
+       * Makefile.in (utils.o): Add dependency.
+
+       * remote.c (getpkt): Add support for run-length encoding.
+
 Fri Mar 18 19:11:15 1994  Steve Chamberlain  (sac@jonny.cygnus.com)
 
        * utils.c (prompt_for_continue): Call readline, not gdb_readline.
index b5effb9996ad4609953093839802f4ef95bfcc0d..535b9843602b5be30c06af10ff35e36b2f1f8866 100644 (file)
@@ -495,7 +495,8 @@ gdb.z:gdb.1
 # install-only is intended to address that need.
 install: all install-only
 install-only:
-       transformed_name=`echo gdb | sed '$(program_transform_name)'` ; \
+       transformed_name=`t='$(program_transform_name)'; \
+                         echo gdb | sed -e "s/brokensed/brokensed/" $$t` ; \
        if test "x$$transformed_name" = x; then \
          transformed_name=gdb ; \
        else \
@@ -629,9 +630,9 @@ kdb:        $(NTSSTART) $(OBS) $(NTSOBS) $(ADD_DEPS) $(CDEPS)
 
 TAGS: $(TAGFILES_NO_SRCDIR) $(TAGFILES_WITH_SRCDIR)
        @echo Making TAGS
-       @etags `find $(srcdir)/config \( -name $(TM_FILE) \
-               -o -name $(XM_FILE) \
-               -o -name $(NAT_FILE) \) -print` \
+       @etags $(srcdir)/$(TM_FILE) \
+         $(srcdir)/$(XM_FILE) \
+         $(srcdir)/$(NAT_FILE) \
        `(for i in $(DEPFILES) $(TAGFILES_NO_SRCDIR); do \
                echo $(srcdir)/$$i ; \
        done ; for i in $(TAGFILES_WITH_SRCDIR); do \
@@ -1392,7 +1393,7 @@ remote-z8k.o: remote-z8k.c $(wait_h) $(srcdir)/../sim/z8k/sim.h \
        $(defs_h) $(gdbcore_h) $(inferior_h) target.h terminal.h
 
 remote-utils.o: remote-utils.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
-       $(inferior_h) $(remote_utils_h) 
+       $(inferior_h) $(remote_utils_h)
 
 remote.o: remote.c $(bfd_h) $(wait_h) $(defs_h) $(gdbcmd_h) \
        $(inferior_h) $(remote_utils_h) symfile.h terminal.h
@@ -1467,7 +1468,7 @@ ultra3-xdep.o: ultra3-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h)
 umax-xdep.o: umax-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h)
 
 utils.o: utils.c $(bfd_h) $(defs_h) $(expression_h) $(gdbcmd_h) \
-       language.h signals.h target.h terminal.h
+       language.h signals.h target.h terminal.h $(readline_headers)
 
 valarith.o: valarith.c $(bfd_h) $(defs_h) $(expression_h) \
        $(gdbtypes_h) language.h $(symtab_h) target.h $(value_h)
index 5f787481709325fbabe7f51b947ece3d24e5a0ae..b281b983707971dc6fa9acf3e12d7a340f1f95e5 100644 (file)
@@ -400,3 +400,8 @@ if [ "${nativefile}" = "" ] ; then
                < Makefile > Makefile.tem
        mv -f Makefile.tem Makefile
 fi
+
+sed -e '/^TM_FILE[     ]*=/s,^TM_FILE[         ]*=[    ]*,&config/'"${gdb_target_cpu}"'/,
+/^XM_FILE[     ]*=/s,^XM_FILE[         ]*=[    ]*,&config/'"${gdb_host_cpu}"'/,
+/^NAT_FILE[    ]*=/s,^NAT_FILE[        ]*=[    ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
+mv -f Makefile.tmp Makefile
index 55d6d3e3618f5bab3b28ff290d9bc783343426ad..ad0321dddafb00d9a71d4d6cf8530a9412f8beed 100644 (file)
@@ -350,7 +350,7 @@ solib_map_sections (so)
       p -> addr += (CORE_ADDR) LM_ADDR (so);
       p -> endaddr += (CORE_ADDR) LM_ADDR (so);
       so -> lmend = (CORE_ADDR) max (p -> endaddr, so -> lmend);
-      if (STREQ (p -> sec_ptr -> name, ".text"))
+      if (STREQ (p -> the_bfd_section -> name, ".text"))
        {
          so -> textsection = p;
        }
index 381a095b15bf5e92eeee2590fd66863e21dcec52..6c6dfc20724319af876882f86532e2a5366d85cc 100644 (file)
@@ -83,7 +83,7 @@ add_to_objfile_sections (abfd, asect, objfile_p_char)
     return;
   section.offset = 0;
   section.objfile = objfile;
-  section.sec_ptr = asect;
+  section.the_bfd_section = asect;
   section.addr = bfd_section_vma (abfd, asect);
   section.endaddr = section.addr + bfd_section_size (abfd, asect);
   obstack_grow (&objfile->psymbol_obstack, &section, sizeof(section));
index ac34668ac5f505c30413502ec2f587bd1baef828..252a75d1e46eb4d1e46ff2eb0985adb0684ce66d 100644 (file)
@@ -140,14 +140,9 @@ struct obj_section {
      addresses.  */
   CORE_ADDR offset;
 
-  /* For the ptx compiler, we can't use the sec_ptr typedef when the field's
-     name is sec_ptr.  We really should rename the field (or better yet,
-     the typedef should be bfd_sec_ptr).  */
-  struct sec *sec_ptr; /* BFD section pointer */
-
-  /* Objfile this section is part of.  Not currently used, but I'm sure
-     that someone will want the bfd that the sec_ptr goes with or something
-     like that before long.  */
+  sec_ptr the_bfd_section; /* BFD section pointer */
+
+  /* Objfile this section is part of.  */
   struct objfile *objfile;
 };
 
index 7f0d1a5ecee792d4a534d342dd723dc4c814166e..843448a681b2535ef9a7258edb865e6b81bd0870 100644 (file)
@@ -214,7 +214,7 @@ solib_map_sections (so)
       p -> addr += (CORE_ADDR) LM_ADDR (so);
       p -> endaddr += (CORE_ADDR) LM_ADDR (so);
       so -> lmend = (CORE_ADDR) max (p -> endaddr, so -> lmend);
-      if (STREQ (p -> sec_ptr -> name, ".text"))
+      if (STREQ (p -> the_bfd_section -> name, ".text"))
        {
          so -> textsection = p;
        }
index 87437a177981bef7d81d91ef76a5591eed6bc6b3..7240f0b52774128111424b3187d444ded0fe7418 100644 (file)
@@ -1,5 +1,5 @@
 /* Remote target communications for serial-line targets in custom GDB protocol
-   Copyright 1988, 1991, 1992, 1993 Free Software Foundation, Inc.
+   Copyright 1988, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
 
 This file is part of GDB.
 
@@ -116,7 +116,16 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
                                        we can extend the protocol and GDB
                                        can tell whether the stub it is
                                        talking to uses the old or the new.
-*/
+       search          tAA:PP,MM       Search backward starting at address
+                                       AA for a match with pattern PP and
+                                       mask MM.  PP and MM are 4 bytes.
+                                       Not supported by all stubs.
+
+       Responses can be run-length encoded to save space.  A '*' means that
+       the next two characters are hex digits giving a repeat count which
+       stands for that many repititions of the character preceding the '*'.
+       Note that this means that responses cannot contain '*'.  Example:
+        "0*03" means the same as "0000".  */
 
 #include "defs.h"
 #include <string.h>
@@ -164,7 +173,7 @@ static void
 remote_fetch_registers PARAMS ((int regno));
 
 static void
-remote_resume PARAMS ((int pid, int step, int siggnal));
+remote_resume PARAMS ((int pid, int step, enum target_signal siggnal));
 
 static int
 remote_start_remote PARAMS ((char *dummy));
@@ -190,8 +199,7 @@ remote_send PARAMS ((char *buf));
 static int
 readchar PARAMS ((void));
 
-static int
-remote_wait PARAMS ((int pid, WAITTYPE *status));
+static int remote_wait PARAMS ((int pid, struct target_waitstatus *status));
 
 static int
 tohex PARAMS ((int nib));
@@ -301,10 +309,13 @@ device is attached to the remote system (e.g. /dev/ttya).");
   if (!remote_desc)
     perror_with_name (name);
 
-  if (SERIAL_SETBAUDRATE (remote_desc, baud_rate))
+  if (baud_rate != -1)
     {
-      SERIAL_CLOSE (remote_desc);
-      perror_with_name (name);
+      if (SERIAL_SETBAUDRATE (remote_desc, baud_rate))
+       {
+         SERIAL_CLOSE (remote_desc);
+         perror_with_name (name);
+       }
     }
 
   SERIAL_RAW (remote_desc);
@@ -381,7 +392,8 @@ tohex (nib)
 
 static void
 remote_resume (pid, step, siggnal)
-     int pid, step, siggnal;
+     int pid, step;
+     enum target_signal siggnal;
 {
   char buf[PBUFSIZ];
 
@@ -389,13 +401,9 @@ remote_resume (pid, step, siggnal)
     {
       char *name;
       target_terminal_ours_for_output ();
-      printf_filtered ("Can't send signals to a remote system.  ");
-      name = strsigno (siggnal);
-      if (name)
-       printf_filtered (name);
-      else
-       printf_filtered ("Signal %d", siggnal);
-      printf_filtered (" not sent.\n");
+      printf_filtered
+       ("Can't send signals to a remote system.  %s not sent.\n",
+        target_signal_to_name (siggnal));
       target_terminal_inferior ();
     }
 
@@ -461,11 +469,12 @@ Give up (and stop debugging it)? "))
 static int
 remote_wait (pid, status)
      int pid;
-     WAITTYPE *status;
+     struct target_waitstatus *status;
 {
   unsigned char buf[PBUFSIZ];
 
-  WSETEXIT ((*status), 0);
+  status->kind = TARGET_WAITKIND_EXITED;
+  status->value.integer = 0;
 
   while (1)
     {
@@ -589,7 +598,7 @@ remote_wait (pid, status)
                  {
                    flagword flags;
 
-                   flags = bfd_get_section_flags (abfd, s->sec_ptr);
+                   flags = bfd_get_section_flags (abfd, s->the_bfd_section);
 
                    if (flags & SEC_CODE)
                      {
@@ -614,7 +623,8 @@ remote_wait (pid, status)
       else if (buf[0] == 'W')
        {
          /* The remote process exited.  */
-         WSETEXIT (*status, (fromhex (buf[1]) << 4) + fromhex (buf[2]));
+         status->kind = TARGET_WAITKIND_EXITED;
+         status->value.integer = (fromhex (buf[1]) << 4) + fromhex (buf[2]);
          return 0;
        }
       else if (buf[0] == 'S')
@@ -623,7 +633,9 @@ remote_wait (pid, status)
        warning ("Invalid remote reply: %s", buf);
     }
 
-  WSETSTOP ((*status), (((fromhex (buf[1])) << 4) + (fromhex (buf[2]))));
+  status->kind = TARGET_WAITKIND_STOPPED;
+  status->value.sig = (enum target_signal)
+    (((fromhex (buf[1])) << 4) + (fromhex (buf[2])));
 
   return 0;
 }
@@ -901,9 +913,11 @@ remote_xfer_memory(memaddr, myaddr, len, should_write, target)
        xfersize = len;
 
       if (should_write)
-        bytes_xferred = remote_write_bytes (memaddr, myaddr, xfersize);
+        bytes_xferred = remote_write_bytes (memaddr,
+                                           (unsigned char *)myaddr, xfersize);
       else
-       bytes_xferred = remote_read_bytes (memaddr, myaddr, xfersize);
+       bytes_xferred = remote_read_bytes (memaddr,
+                                          (unsigned char *)myaddr, xfersize);
 
       /* If we get an error, we are done xferring.  */
       if (bytes_xferred == 0)
@@ -917,6 +931,80 @@ remote_xfer_memory(memaddr, myaddr, len, should_write, target)
   return total_xferred;
 }
 
+#if 0
+/* Enable after 4.12.  */
+
+void
+remote_search (len, data, mask, startaddr, increment, lorange, hirange
+              addr_found, data_found)
+     int len;
+     char *data;
+     char *mask;
+     CORE_ADDR startaddr;
+     int increment;
+     CORE_ADDR lorange;
+     CORE_ADDR hirange;
+     CORE_ADDR *addr_found;
+     char *data_found;
+{
+  if (increment == -4 && len == 4)
+    {
+      long mask_long, data_long;
+      long data_found_long;
+      CORE_ADDR addr_we_found;
+      char buf[PBUFSIZ];
+      long returned_long[2];
+      char *p;
+
+      mask_long = extract_unsigned_integer (mask, len);
+      data_long = extract_unsigned_integer (data, len);
+      sprintf (buf, "t%x:%x,%x", startaddr, data_long, mask_long);
+      putpkt (buf);
+      getpkt (buf, 0);
+      if (buf[0] == '\0')
+       {
+         /* The stub doesn't support the 't' request.  We might want to
+            remember this fact, but on the other hand the stub could be
+            switched on us.  Maybe we should remember it only until
+            the next "target remote".  */
+         generic_search (len, data, mask, startaddr, increment, lorange,
+                         hirange, addr_found, data_found);
+         return;
+       }
+
+      if (buf[0] == 'E')
+       /* There is no correspondance between what the remote protocol uses
+          for errors and errno codes.  We would like a cleaner way of
+          representing errors (big enough to include errno codes, bfd_error
+          codes, and others).  But for now just use EIO.  */
+       memory_error (EIO, startaddr);
+      p = buf;
+      addr_we_found = 0;
+      while (*p != '\0' && *p != ',')
+       addr_we_found = (addr_we_found << 4) + fromhex (*p++);
+      if (*p == '\0')
+       error ("Protocol error: short return for search");
+
+      data_found_long = 0;
+      while (*p != '\0' && *p != ',')
+       data_found_long = (data_found_long << 4) + fromhex (*p++);
+      /* Ignore anything after this comma, for future extensions.  */
+
+      if (addr_we_found < lorange || addr_we_found >= hirange)
+       {
+         *addr_found = 0;
+         return;
+       }
+
+      *addr_found = addr_we_found;
+      *data_found = store_unsigned_integer (data_we_found, len);
+      return;
+    }
+  generic_search (len, data, mask, startaddr, increment, lorange,
+                 hirange, addr_found, data_found);
+}
+#endif /* 0 */
+\f
 static void
 remote_files_info (ignore)
      struct target_ops *ignore;
@@ -1027,11 +1115,18 @@ putpkt (buf)
          break;                /* Here to retransmit */
        }
 
+#if 0
+      /* This is wrong.  If doing a long backtrace, the user should be
+        able to get out next time we call QUIT, without anything as violent
+        as interrupt_query.  If we want to provide a way out of here
+        without getting to the next QUIT, it should be based on hitting
+        ^C twice as in remote_wait.  */
       if (quit_flag)
        {
          quit_flag = 0;
          interrupt_query ();
        }
+#endif
     }
 }
 
@@ -1041,8 +1136,8 @@ putpkt (buf)
    while the target is executing user code.  */
 
 static void
-getpkt (buf, forever)
-     char *buf;
+getpkt (retbuf, forever)
+     char *retbuf;
      int forever;
 {
   char *bp;
@@ -1050,15 +1145,24 @@ getpkt (buf, forever)
   int c = 0;
   unsigned char c1, c2;
   int retries = 0;
+  char buf[PBUFSIZ];
+
 #define MAX_RETRIES    10
 
   while (1)
     {
+#if 0
+      /* This is wrong.  If doing a long backtrace, the user should be
+        able to get out time next we call QUIT, without anything as violent
+        as interrupt_query.  If we want to provide a way out of here
+        without getting to the next QUIT, it should be based on hitting
+        ^C twice as in remote_wait.  */
       if (quit_flag)
        {
          quit_flag = 0;
          interrupt_query ();
        }
+#endif
 
       /* This can loop forever if the remote side sends us characters
         continuously, but if it pauses, we'll get a zero from readchar
@@ -1138,8 +1242,36 @@ whole:
        }
     }
 
-out:
+  /* Deal with run-length encoding.  */
+  {
+    char *src = buf;
+    char *dest = retbuf;
+    int i;
+    int repeat;
+    do {
+      if (*src == '*')
+       {
+         if (src[1] == '\0' || src[2] == '\0')
+           {
+             if (remote_debug)
+               puts_filtered ("Packet too short, retrying\n");
+             goto whole;
+           }
+         repeat = (fromhex (src[1]) << 4) + fromhex (src[2]);
+         for (i = 0; i < repeat; ++i)
+           {
+             *dest++ = src[-1];
+           }
+         src += 2;
+       }
+      else
+       {
+         *dest++ = *src;
+       }
+    } while (*src++ != '\0');
+  }
 
+out:
   SERIAL_WRITE (remote_desc, "+", 1);
 
   if (remote_debug)
index 1d8b5ec3d3a112d47ccd29f1b6553af4fd631fa5..3da0c0165056a7ed854ba042fd0d7316c6cc583a 100644 (file)
@@ -315,17 +315,17 @@ vmap_symtab (vp)
     struct obj_section *s;
     for (s = objfile->sections; s < objfile->sections_end; ++s)
       {
-       if (s->sec_ptr->target_index == textsec->target_index)
+       if (s->the_bfd_section->target_index == textsec->target_index)
          {
            s->addr += text_delta;
            s->endaddr += text_delta;
          }
-       else if (s->sec_ptr->target_index == datasec->target_index)
+       else if (s->the_bfd_section->target_index == datasec->target_index)
          {
            s->addr += data_delta;
            s->endaddr += data_delta;
          }
-       else if (s->sec_ptr->target_index == bsssec->target_index)
+       else if (s->the_bfd_section->target_index == bsssec->target_index)
          {
            s->addr += bss_delta;
            s->endaddr += bss_delta;
@@ -555,12 +555,12 @@ vmap_exec ()
 
   for (i=0; &exec_ops.to_sections[i] < exec_ops.to_sections_end; i++)
     {
-      if (STREQ(".text", exec_ops.to_sections[i].sec_ptr->name))
+      if (STREQ(".text", exec_ops.to_sections[i].the_bfd_section->name))
        {
          exec_ops.to_sections[i].addr += vmap->tstart;
          exec_ops.to_sections[i].endaddr += vmap->tstart;
        }
-      else if (STREQ(".data", exec_ops.to_sections[i].sec_ptr->name))
+      else if (STREQ(".data", exec_ops.to_sections[i].the_bfd_section->name))
        {
          exec_ops.to_sections[i].addr += vmap->dstart;
          exec_ops.to_sections[i].endaddr += vmap->dstart;
@@ -727,15 +727,15 @@ bfd_err:
             and if vp->tstart is 0xd0002000, then the first byte of
             the text section on disk corresponds to address 0xd0002200.  */
          stp->bfd = vp->bfd;
-         stp->sec_ptr = bfd_get_section_by_name (stp->bfd, ".text");
-         stp->addr = bfd_section_vma (stp->bfd, stp->sec_ptr) + vp->tstart;
-         stp->endaddr = bfd_section_vma (stp->bfd, stp->sec_ptr) + vp->tend;
+         stp->the_bfd_section = bfd_get_section_by_name (stp->bfd, ".text");
+         stp->addr = bfd_section_vma (stp->bfd, stp->the_bfd_section) + vp->tstart;
+         stp->endaddr = bfd_section_vma (stp->bfd, stp->the_bfd_section) + vp->tend;
          stp++;
          
          stp->bfd = vp->bfd;
-         stp->sec_ptr = bfd_get_section_by_name (stp->bfd, ".data");
-         stp->addr = bfd_section_vma (stp->bfd, stp->sec_ptr) + vp->dstart;
-         stp->endaddr = bfd_section_vma (stp->bfd, stp->sec_ptr) + vp->dend;
+         stp->the_bfd_section = bfd_get_section_by_name (stp->bfd, ".data");
+         stp->addr = bfd_section_vma (stp->bfd, stp->the_bfd_section) + vp->dstart;
+         stp->endaddr = bfd_section_vma (stp->bfd, stp->the_bfd_section) + vp->dend;
        }
 
       vmap_symtab (vp);
index 7deca286020ff46b1a7e5c387a003d70bf2f4bbc..060d29a4989159275ead9515a2bad94fd8a1df94 100644 (file)
@@ -1,5 +1,6 @@
 /* Target-dependent code for the SPARC for GDB, the GNU debugger.
-   Copyright 1986, 1987, 1989, 1991, 1992, 1993 Free Software Foundation, Inc.
+   Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1994
+   Free Software Foundation, Inc.
 
 This file is part of GDB.
 
@@ -175,6 +176,15 @@ sparc_frame_saved_pc (frame)
 
       CORE_ADDR sigcontext_addr;
       char scbuf[TARGET_PTR_BIT / HOST_CHAR_BIT];
+      int saved_pc_offset = SIGCONTEXT_PC_OFFSET;
+      char *name = NULL;
+
+      /* Solaris2 ucbsigvechandler passes a pointer to a sigcontext
+        as the third parameter.  The offset to the saved pc is 12.  */
+      find_pc_partial_function (frame->pc, &name,
+                               (CORE_ADDR *)NULL,(CORE_ADDR *)NULL);
+      if (name && STREQ (name, "ucbsigvechandler"))
+       saved_pc_offset = 12;
 
       /* The sigcontext address is contained in register O2.  */
       get_saved_register (buf, (int *)NULL, (CORE_ADDR *)NULL,
@@ -183,7 +193,7 @@ sparc_frame_saved_pc (frame)
 
       /* Don't cause a memory_error when accessing sigcontext in case the
         stack layout has changed or the stack is corrupt.  */
-      target_read_memory (sigcontext_addr + SIGCONTEXT_PC_OFFSET,
+      target_read_memory (sigcontext_addr + saved_pc_offset,
                          scbuf, sizeof (scbuf));
       return extract_address (scbuf, sizeof (scbuf));
     }
@@ -788,8 +798,8 @@ in_solib_trampoline(pc, name)
   s = find_pc_section(pc);
   
   retval = (s != NULL
-           && s->sec_ptr->name != NULL
-           && STREQ (s->sec_ptr->name, ".plt"));
+           && s->the_bfd_section->name != NULL
+           && STREQ (s->the_bfd_section->name, ".plt"));
   return(retval);
 }
 
index 95a713a054ba43953f19a9329ca2a4b499b2246a..892e2d81e72836aeba01bc28597cf93298dbfac1 100644 (file)
@@ -219,7 +219,7 @@ add_to_section_table (abfd, asect, table_pp_char)
   if (0 == bfd_section_size (abfd, asect))
     return;
   (*table_pp)->bfd = abfd;
-  (*table_pp)->sec_ptr = asect;
+  (*table_pp)->the_bfd_section = asect;
   (*table_pp)->addr = bfd_section_vma (abfd, asect);
   (*table_pp)->endaddr = (*table_pp)->addr + bfd_section_size (abfd, asect);
   (*table_pp)++;
@@ -357,7 +357,7 @@ xfer_memory (memaddr, myaddr, len, write, target)
        if (p->endaddr >= memend)
          {
            /* Entire transfer is within this section.  */
-           res = xfer_fn (p->bfd, p->sec_ptr, myaddr, memaddr - p->addr, len);
+           res = xfer_fn (p->bfd, p->the_bfd_section, myaddr, memaddr - p->addr, len);
            return (res != false)? len: 0;
          }
        else if (p->endaddr <= memaddr)
@@ -369,7 +369,7 @@ xfer_memory (memaddr, myaddr, len, write, target)
          {
            /* This section overlaps the transfer.  Just do half.  */
            len = p->endaddr - memaddr;
-           res = xfer_fn (p->bfd, p->sec_ptr, myaddr, memaddr - p->addr, len);
+           res = xfer_fn (p->bfd, p->the_bfd_section, myaddr, memaddr - p->addr, len);
            return (res != false)? len: 0;
          }
       else if (p->addr < nextsectaddr)
@@ -401,8 +401,8 @@ print_section_info (t, abfd)
                     local_hex_string_custom ((unsigned long) p->endaddr, "08l"));
     if (info_verbose)
       printf_filtered (" @ %s",
-                      local_hex_string_custom ((unsigned long) p->sec_ptr->filepos, "08l"));
-    printf_filtered (" is %s", bfd_section_name (p->bfd, p->sec_ptr));
+                      local_hex_string_custom ((unsigned long) p->the_bfd_section->filepos, "08l"));
+    printf_filtered (" is %s", bfd_section_name (p->bfd, p->the_bfd_section));
     if (p->bfd != abfd) {
       printf_filtered (" in %s", bfd_get_filename (p->bfd));
     }
@@ -511,8 +511,8 @@ set_section_command (args, from_tty)
   secaddr = parse_and_eval_address (args);
 
   for (p = exec_ops.to_sections; p < exec_ops.to_sections_end; p++) {
-    if (!strncmp (secname, bfd_section_name (exec_bfd, p->sec_ptr), seclen)
-       && bfd_section_name (exec_bfd, p->sec_ptr)[seclen] == '\0') {
+    if (!strncmp (secname, bfd_section_name (exec_bfd, p->the_bfd_section), seclen)
+       && bfd_section_name (exec_bfd, p->the_bfd_section)[seclen] == '\0') {
       offset = secaddr - p->addr;
       p->addr += offset;
       p->endaddr += offset;