Modified Files:
authorKung Hsu <kung@cygnus>
Wed, 30 Mar 1994 00:18:29 +0000 (00:18 +0000)
committerKung Hsu <kung@cygnus>
Wed, 30 Mar 1994 00:18:29 +0000 (00:18 +0000)
ChangeLog os9kread.c remote-os9k.c

        * os9kread.c (record_minmal_symbol): add section_offset to
        relocate minimal symbol table.
        * os9kread.c (read_minimal_symbols): ditto.
        * os9kread.c (os9k_symfile_init): increase size of dbg and stb
        file names.
        * os9kread.c (read_os9k_psymtab): if there's no dbg file, just
        return. Also if file addr is 0 leave it 0, not to relocate.
        * remote-os9k.c (_initialize_remote_os9k): add 'set remotexon',
        'set remotexoff' and 'set remotelog' commands.

gdb/ChangeLog
gdb/os9kread.c
gdb/remote-os9k.c

index d594b22..39ca987 100644 (file)
@@ -1,3 +1,15 @@
+Tue Mar 29 16:06:01 1994  Kung Hsu  (kung@mexican.cygnus.com)
+
+       * os9kread.c (record_minmal_symbol): add section_offset to
+       relocate minimal symbol table.
+       * os9kread.c (read_minimal_symbols): ditto.
+       * os9kread.c (os9k_symfile_init): increase size of dbg and stb
+       file names.
+       * os9kread.c (read_os9k_psymtab): if there's no dbg file, just
+       return. Also if file addr is 0 leave it 0, not to relocate.
+       * remote-os9k.c (_initialize_remote_os9k): add 'set remotexon',
+       'set remotexoff' and 'set remotelog' commands.
+
 Tue Mar 29 12:38:45 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
 
        * remote.c (remote_store_registers): Add 'P' request to set an
index 6577b65..4a1f365 100644 (file)
@@ -181,7 +181,8 @@ os9k_end_psymtab PARAMS ((struct partial_symtab *, char **, int, int, CORE_ADDR,
                      struct partial_symtab **, int));
 
 static void
-record_minimal_symbol PARAMS ((char *, CORE_ADDR, int, struct objfile *));
+record_minimal_symbol PARAMS ((char *, CORE_ADDR, int, struct objfile *, 
+                    struct section_offsets *));
 \f
 #define HANDLE_RBRAC(val) \
   if ((val) > pst->texthigh) pst->texthigh = (val);
@@ -207,23 +208,38 @@ record_minimal_symbol PARAMS ((char *, CORE_ADDR, int, struct objfile *));
 #define N_ABS 6
 
 static void
-record_minimal_symbol (name, address, type, objfile)
+record_minimal_symbol (name, address, type, objfile, section_offsets)
      char *name;
      CORE_ADDR address;
      int type;
      struct objfile *objfile;
+     struct section_offsets *section_offsets;
 {
   enum minimal_symbol_type ms_type;
 
   switch (type)
     {
-    case N_TEXT:  ms_type = mst_text; break;
-    case N_DATA:  ms_type = mst_data; break;
-    case N_BSS:   ms_type = mst_bss;  break;
-    case N_RDATA: ms_type = mst_bss; break;
-    case N_IDATA: ms_type = mst_data; break;
-    case N_ABS:   ms_type = mst_abs;  break;
-    default:      ms_type = mst_unknown; break;
+    case N_TEXT:
+         ms_type = mst_text;
+         address += ANOFFSET(section_offsets, SECT_OFF_TEXT);
+         break;
+    case N_DATA:
+         ms_type = mst_data;
+         break;
+    case N_BSS:
+          ms_type = mst_bss;
+         break;
+    case N_RDATA:
+         ms_type = mst_bss;
+         break;
+    case N_IDATA:      
+         ms_type = mst_data;
+         break;
+    case N_ABS:
+         ms_type = mst_abs;
+         break;
+    default:
+          ms_type = mst_unknown; break;
   }
 
   prim_record_minimal_symbol
@@ -250,8 +266,9 @@ struct stbsymbol {
 #define STBSYMSIZE 10
 
 static int 
-read_minimal_symbols(objfile)
+read_minimal_symbols(objfile, section_offsets)
      struct objfile *objfile;
+     struct section_offsets *section_offsets;
 {
 FILE *fp;
 bfd *abfd;
@@ -299,7 +316,7 @@ char buf[64], buf1[128];
        if (ch == 0) break;
        ch = getc(fp);
     };
-    record_minimal_symbol(buf1, sym.value, sym.type&7, objfile);
+    record_minimal_symbol(buf1, sym.value, sym.type&7, objfile, section_offsets);
     off += STBSYMSIZE;
   };
   install_minimal_symbols (objfile);
@@ -337,7 +354,7 @@ os9k_symfile_read (objfile, section_offsets, mainline)
   back_to = make_cleanup (really_free_pendings, 0);
 
   make_cleanup (discard_minimal_symbols, 0);
-  read_minimal_symbols (objfile);
+  read_minimal_symbols (objfile, section_offsets);
 
   /* Now that the symbol table data of the executable file are all in core,
      process them and define symbols accordingly.  */
@@ -387,7 +404,7 @@ os9k_symfile_init (objfile)
   int val;
   bfd *sym_bfd = objfile->obfd;
   char *name = bfd_get_filename (sym_bfd);
-  char dbgname[64], stbname[64];
+  char dbgname[512], stbname[512];
   FILE *symfile = 0;
   FILE *minfile = 0;
 
@@ -633,6 +650,7 @@ read_os9k_psymtab (section_offsets, objfile, text_addr, text_size)
 
   abfd = objfile->obfd;
   fp = objfile->auxf2; 
+  if (!fp) return;
                
   fread(&dbghdr.sync, sizeof(dbghdr.sync), 1, fp);
   fread(&dbghdr.rev, sizeof(dbghdr.rev), 1, fp);
@@ -702,8 +720,9 @@ read_os9k_psymtab (section_offsets, objfile, text_addr, text_size)
                unsigned long valu;
                enum language tmp_language;
                
-               valu = CUR_SYMBOL_VALUE + 
-                 ANOFFSET (section_offsets, SECT_OFF_TEXT);
+               valu = CUR_SYMBOL_VALUE;
+               if (valu)
+                 valu += ANOFFSET (section_offsets, SECT_OFF_TEXT);
                past_first_source_file = 1;
 
                if (psymfile_depth == 0) {
index 6b862da..abeb1b5 100644 (file)
@@ -49,6 +49,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "symfile.h"
 #include "objfiles.h"
 #include "gdb-stabs.h"
+#include <termio.h>
 
 #ifdef HAVE_TERMIO
 #  define TERMINAL struct termios
@@ -78,6 +79,8 @@ static int rombug_is_open = 0;
 #define LOG_FILE "monitor.log"
 FILE *log_file;
 static int monitor_log = 0;
+static int tty_xon = 0;
+static int tty_xoff = 0;
 
 static int timeout = 5;
 static int is_trace_mode = 0;
@@ -339,6 +342,15 @@ rombug_open(args, from_tty)
       perror_with_name ("RomBug");
     }
   SERIAL_RAW(monitor_desc);
+  if (tty_xon || tty_xoff)
+    {
+    struct hardware_ttystate { struct termios t;} *tty_s;
+
+      tty_s =(struct hardware_ttystate  *)SERIAL_GET_TTY_STATE(monitor_desc);
+      if (tty_xon) tty_s->t.c_iflag |= IXON; 
+      if (tty_xoff) tty_s->t.c_iflag |= IXOFF;
+      SERIAL_SET_TTY_STATE(monitor_desc, (serial_ttystate) tty_s);
+    }
 
   rombug_is_open = 1;
 
@@ -1164,12 +1176,25 @@ _initialize_remote_os9k ()
         &showlist);
 
   add_show_from_set (
-        add_set_cmd ("monitor_log", no_class, var_zinteger,
+        add_set_cmd ("remotelog", no_class, var_zinteger,
                  (char *) &monitor_log,
                  "Set monitor activity log on(=1) or off(=0).",
                  &setlist),
         &showlist);
 
+  add_show_from_set (
+        add_set_cmd ("remotexon", no_class, var_zinteger,
+                 (char *) &tty_xon,
+                 "Set remote tty line XON control",
+                 &setlist),
+        &showlist);
+
+  add_show_from_set (
+        add_set_cmd ("remotexoff", no_class, var_zinteger,
+                 (char *) &tty_xoff,
+                 "Set remote tty line XOFF control",
+                 &setlist),
+        &showlist);
 
   add_com ("rombug <command>", class_obscure, rombug_command,
           "Send a command to the debug monitor.");