* Makefile.in: VERSION 4.2.96.
authorJohn Gilmore <gnu@cygnus>
Wed, 4 Dec 1991 08:36:17 +0000 (08:36 +0000)
committerJohn Gilmore <gnu@cygnus>
Wed, 4 Dec 1991 08:36:17 +0000 (08:36 +0000)
* main.c (initialize_main):  Revise command descriptions.
* command.c (show_user):  `info user' -> `show user'.
* symtab.c (_initialize_symtab):  Typo in `info types' desc.

* coffread.c (coff_symfile_read):  Avoid select_source_symtab,
since it is not needed and can cause errors when examining ".o"s.
(read_coff_symtab, decode_base_type):  Use complain, not printf.
Print symbol name, not its number.
Remove "#if defined(clipper) #define BELIEVE_PCC_PROMOTION", which
someday should go in a clipper target config file.

* symfile.c (compact_misc_function_vector):  Handle empty vector.
(complain, clear_complaints, syms_from_objfile):  Fix complaint
formatting.
* xcoffexec.c:  Change syms_from_objfile caller.

gdb/ChangeLog
gdb/command.c
gdb/symfile.c
gdb/xcoffexec.c

index ca1875380402bcaed5ddfa84596584ab3ffa8492..307435ce82488254e6c6d2ac97816880f191b6a8 100644 (file)
@@ -1,10 +1,22 @@
 Tue Dec  3 17:24:57 1991  John Gilmore  (gnu at cygnus.com)
 
+       * Makefile.in:  VERSION 4.2.96.
+
+       * main.c (initialize_main):  Revise command descriptions.
+       * command.c (show_user):  `info user' -> `show user'.   
+       * symtab.c (_initialize_symtab):  Typo in `info types' desc.
+
        * coffread.c (coff_symfile_read):  Avoid select_source_symtab,
-       since it is not needed and can cause errors when examining ".o"
-       files.
+       since it is not needed and can cause errors when examining ".o"s.
+       (read_coff_symtab, decode_base_type):  Use complain, not printf.
+       Print symbol name, not its number.
+       Remove "#if defined(clipper) #define BELIEVE_PCC_PROMOTION", which
+       someday should go in a clipper target config file.
 
        * symfile.c (compact_misc_function_vector):  Handle empty vector.
+       (complain, clear_complaints, syms_from_objfile):  Fix complaint
+       formatting.
+       * xcoffexec.c:  Change syms_from_objfile caller.
 
        * sparc-xdep.c:  Force tm-file as tm-sparc.h, to make it compile
        when configured for cross debugging.  FIXME, this needs a more
index 17477069545aea87cd4e8673b7e7601a848b2e05..2851ad9baef0ac45ee3d657a921c32818eac63f3 100644 (file)
@@ -17,7 +17,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #include <stdio.h>
 #include "defs.h"
-#include "command.h"
+#include "gdbcmd.h"
 #include "symtab.h"
 #include "value.h"
 #include <ctype.h>
@@ -1152,7 +1152,7 @@ make_command (arg, from_tty)
 }
 
 static void
-user_info_1 (c, stream)
+show_user_1 (c, stream)
      struct cmd_list_element *c;
      FILE *stream;
 {
@@ -1172,7 +1172,7 @@ user_info_1 (c, stream)
 
 /* ARGSUSED */
 static void
-user_info (args, from_tty)
+show_user (args, from_tty)
      char *args;
      int from_tty;
 {
@@ -1184,14 +1184,14 @@ user_info (args, from_tty)
       c = lookup_cmd (&args, cmdlist, "", 0, 1);
       if (c->class != class_user)
        error ("Not a user command.");
-      user_info_1 (c, stdout);
+      show_user_1 (c, stdout);
     }
   else
     {
       for (c = cmdlist; c; c = c->next)
        {
          if (c->class == class_user)
-           user_info_1 (c, stdout);
+           show_user_1 (c, stdout);
        }
     }
 }
@@ -1206,7 +1206,8 @@ With no arguments, run an inferior shell.");
   add_com ("make", class_support, make_command,
           "Run the ``make'' program using the rest of the line as arguments.");
 
-  add_info ("user", user_info, "Show definitions of user defined commands.\n\
+  add_cmd ("user", no_class, show_user, 
+          "Show definitions of user defined commands.\n\
 Argument is the name of the user defined command.\n\
-With no argument, show definitions of all user defined commands.");
+With no argument, show definitions of all user defined commands.", &showlist);
 }
index 0ab16a02458515b5975acdf85778456909c130f1..8f5b5b3e971c2c66df7f1d691fef54eeffa14bbc 100644 (file)
@@ -475,13 +475,16 @@ psymtab_to_symtab (pst)
    FROM_TTY says how verbose to be.  MAINLINE specifies whether this
    is the main symbol file, or whether it's an extra symbol file such
    as dynamically loaded code.  If !mainline, ADDR is the address
-   where the text segment was loaded.  */
+   where the text segment was loaded.  If VERBO, the caller has printed
+   a verbose message about the symbol reading (and complaints can be
+   more terse about it).  */
 
 void
-syms_from_objfile (objfile, addr, mainline)
+syms_from_objfile (objfile, addr, mainline, verbo)
      struct objfile *objfile;
      CORE_ADDR addr;
      int mainline;
+     int verbo;
 {
   asection *text_sect;
   struct sym_fns *sf;
@@ -531,7 +534,10 @@ syms_from_objfile (objfile, addr, mainline)
       addr = bfd_section_vma (sym_bfd, text_sect);
     }
 
-  clear_complaints();  /* Allow complaints to appear for this new file. */
+  /* Allow complaints to appear for this new file, and record how
+     verbose to be. */
+
+  clear_complaints(1, verbo);
 
   (*sf->sym_read) (sf, addr, mainline);
 
@@ -550,6 +556,9 @@ syms_from_objfile (objfile, addr, mainline)
 
   /* If we have wiped out any old symbol tables, clean up.  */
   clear_symtab_users_once ();
+
+  /* We're done reading the symbol file; finish off complaints.  */
+  clear_complaints(0, verbo);
 }
 
 
@@ -600,7 +609,7 @@ symbol_file_add (name, from_tty, addr, mainline)
       fflush (stdout);
     }
 
-  syms_from_objfile (objfile, addr, mainline);
+  syms_from_objfile (objfile, addr, mainline, from_tty);
 
   if (from_tty)
     {
@@ -916,6 +925,15 @@ fill_in_vptr_fieldno (type)
 
 static unsigned stop_whining = 0;
 
+/* Should each complaint be self explanatory, or should we assume that
+   a series of complaints is being produced? 
+   case 0:  self explanatory message.
+   case 1:  First message of a series that must start off with explanation.
+   case 2:  Subsequent message, when user already knows we are reading
+            symbols and we can just state our piece.  */
+
+static int complaint_series = 0;
+
 /* Print a complaint about the input symbols, and link the complaint block
    into a chain for later handling.  */
 
@@ -932,25 +950,60 @@ complain (complaint, val)
   if (complaint->counter > stop_whining)
     return;
   wrap_here ("");
-  if (!info_verbose) {
+
+  switch (complaint_series + (info_verbose << 1)) {
+
+  /* Isolated messages, must be self-explanatory.  */
+  case 0:
+    puts_filtered ("During symbol reading, ");
+    wrap_here("");
+    printf_filtered (complaint->message, val);
+    puts_filtered (".\n");
+    break;
+
+  /* First of a series, without `set verbose'.  */
+  case 1:
     puts_filtered ("During symbol reading...");
+    printf_filtered (complaint->message, val);
+    puts_filtered ("...");
+    wrap_here("");
+    complaint_series++;
+    break;
+
+  /* Subsequent messages of a series, or messages under `set verbose'.
+     (We'll already have produced a "Reading in symbols for XXX..." message
+      and will clean up at the end with a newline.)  */
+  default:
+    printf_filtered (complaint->message, val);
+    puts_filtered ("...");
+    wrap_here("");
   }
-  printf_filtered (complaint->message, val);
-  puts_filtered ("...");
-  wrap_here("");
-  if (!info_verbose)
-    puts_filtered ("\n");
 }
 
-/* Clear out all complaint counters that have ever been incremented.  */
+/* Clear out all complaint counters that have ever been incremented.
+   If sym_reading is 1, be less verbose about successive complaints,
+   since the messages are appearing all together during a command that
+   reads symbols (rather than scattered around as psymtabs get fleshed
+   out into symtabs at random times).  If noisy is 1, we are in a
+   noisy symbol reading command, and our caller will print enough
+   context for the user to figure it out.  */
 
 void
-clear_complaints ()
+clear_complaints (sym_reading, noisy)
+     int sym_reading;
+     int noisy;
 {
   struct complaint *p;
 
   for (p = complaint_root->next; p != complaint_root; p = p->next)
     p->counter = 0;
+
+  if (!sym_reading && !noisy && complaint_series > 1) {
+    /* Terminate previous series, since caller won't.  */
+    puts_filtered ("\n");
+  }
+
+  complaint_series = sym_reading? 1 + noisy: 0;
 }
 \f
 enum language
@@ -1268,7 +1321,7 @@ The second argument provides the starting address of the file's text.");
 for access from GDB.");
 
   add_show_from_set
-    (add_set_cmd ("complaints", class_support, var_uinteger,
+    (add_set_cmd ("complaints", class_support, var_zinteger,
                  (char *)&stop_whining,
          "Set max number of complaints about incorrect symbols.",
                  &setlist),
index c6d421fa1443f81afa44a7d165c8a343f8a5831f..bba2c5c70c569400619d458bac9d64193ecb0fe9 100644 (file)
@@ -299,7 +299,7 @@ map_vmap (bfd *bf, bfd *arch)
   if (exec_bfd && !obj) {
     name = savestring (bfd_get_filename (bf), strlen (bfd_get_filename (bf)));
     obj = allocate_objfile (bf, name);
-    syms_from_objfile (obj, 0, 0);
+    syms_from_objfile (obj, 0, 0, 0);
   }
 
   /* find the end of the list, and append. */