Path: utzoo!utgpu!watmath!uunet!tut.cis.ohio-state.edu!UUNET.UU.NET!munnari!sibyl.eleceng.ua.oz.au!ian
From: munnari!sibyl.eleceng.ua.oz.au!ian@UUNET.UU.NET
Newsgroups: gnu.emacs.bug
Subject: GDB: support for vanilla System V (part 5 of 5)
Message-ID: <8811280802.AA09990@uunet.UU.NET>
Date: 24 Nov 88 17:28:44 GMT
Sender: daemon@tut.cis.ohio-state.edu
Distribution: gnu
Organization: GNUs Not Usenet
Lines: 754


In GDB 2.7 on sibyl (usg-unix-v)

There are 5 parts because outgoing overseas mail from here must be
less than 25k. Part 1 contains a shar archive containing the new
files. Parts 2 to 5 contain shar archives of the patch files to make
the changes to the the existing files. The patch files are context
differences.

Part 5 of 5:

--------------Cut Here-----------------------
# This is a shell archive.  Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
#
# Wrapped by ian on Thu Nov 24 11:20:20 CST 1988
# Contents:  patch#4
 
echo x - patch#4
sed 's/^@//' > "patch#4" <<'@//E*O*F patch#4//'
*** ../gdb.dist/source.c	Tue May 24 04:54:44 1988
--- source.c	Wed Nov 16 01:02:34 1988
***************
*** 18,23
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
  #include 
  #include 
  #include 

--- 18,29 -----
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
+ #include "config.h"
+ #include "param.h"
+ #ifdef NS5
+ #include 
+ #include 
+ #endif
  #include 
  #include 
  #include 
***************
*** 49,54
  static int first_line_listed;
  
  START_FILE
  
  /* Set the source file default for the "list" command,
     specifying a symtab.  */

--- 55,62 -----
  static int first_line_listed;
  
  START_FILE
+ 
+ void print_sys_errmsg();
  
  /* Set the source file default for the "list" command,
     specifying a symtab.  */
*** ../gdb.dist/stack.c	Tue May 24 04:54:39 1988
--- stack.c	Wed Nov 16 01:02:36 1988
***************
*** 18,23
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
  #include 
  
  #include "defs.h"

--- 18,24 -----
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
+ #include "config.h"
  #include 
  
  #include "defs.h"
***************
*** 47,52
  static void select_calling_frame ();
  
  void print_frame_info ();
  
  /* Print a stack frame briefly.  FRAME should be the frame address
     and LEVEL should be its level in the stack (or -1 for level not defined).

--- 48,55 -----
  static void select_calling_frame ();
  
  void print_frame_info ();
+ void print_source_lines(), set_default_breakpoint(), print_variable_value();
+ void set_return_value();
  
  /* Print a stack frame briefly.  FRAME should be the frame address
     and LEVEL should be its level in the stack (or -1 for level not defined).
*** ../gdb.dist/standalone.c	Wed May  4 00:51:51 1988
--- standalone.c	Wed Nov  9 02:02:08 1988
***************
*** 18,23
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
  #include 
  #include 
  #include 

--- 18,24 -----
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
+ #include "config.h"
  #include 
  #include 
  #include 
*** ../gdb.dist/stuff.c	Wed Oct  1 07:17:34 1986
--- stuff.c	Wed Nov  9 02:02:06 1988
***************
*** 20,25
  
  /* Written 13-Mar-86 by David Bridgham. */
  
  #include 
  #include 
  #include 

--- 20,26 -----
  
  /* Written 13-Mar-86 by David Bridgham. */
  
+ #include "config.h"
  #include 
  #include 
  #include 
*** ../gdb.dist/symmisc.c	Tue Jul 26 17:03:55 1988
--- symmisc.c	Wed Nov  9 02:02:05 1988
***************
*** 19,24
  */
  
  
  #include "defs.h"
  #include "initialize.h"
  #include "symtab.h"

--- 19,25 -----
  */
  
  
+ #include "config.h"
  #include "defs.h"
  #include "initialize.h"
  #include "symtab.h"
*** ../gdb.dist/symtab.c	Fri Apr  8 18:19:09 1988
--- symtab.c	Fri Nov 18 11:00:04 1988
***************
*** 18,23
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
  #include "defs.h"
  #include "initialize.h"
  #include "symtab.h"

--- 18,24 -----
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
+ #include "config.h"
  #include "defs.h"
  #include "initialize.h"
  #include "symtab.h"
***************
*** 36,41
  struct obstack obstack1;
  
  struct obstack *symbol_obstack = &obstack1;
  
  /* These variables point to the objects
     representing the predefined C data types.  */

--- 37,62 -----
  struct obstack obstack1;
  
  struct obstack *symbol_obstack = &obstack1;
+ 
+ struct misc_function *misc_function_vector;
+ int misc_function_count;
+ /* This is the list of struct symtab's that gdb considers current.  */
+ 
+ struct symtab *symtab_list;
+ 
+ /* This symtab variable specifies the current file for printing source lines */
+ 
+ struct symtab *current_source_symtab;
+ 
+ /* This is the next line to print for listing source lines.  */
+ 
+ int current_source_line;
+ 
+ /* Given a pc value, return line number it is in.
+    Second arg nonzero means if pc is on the boundary
+    use the previous statement's line number.  */
+ 
+ struct symtab_and_line find_pc_line ();
  
  /* These variables point to the objects
     representing the predefined C data types.  */
*** ../gdb.dist/utils.c	Tue May 31 12:57:25 1988
--- utils.c	Wed Nov 16 01:02:29 1988
***************
*** 18,23
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
  #include 
  #include 
  #include 

--- 18,24 -----
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
+ #include "config.h"
  #include 
  #include 
  #include 
***************
*** 29,35
  
  void error ();
  void fatal ();
! 
  /* Chain of cleanup actions established with make_cleanup,
     to be executed if an error happens.  */
  

--- 30,36 -----
  
  void error ();
  void fatal ();
! char *malloc(), *realloc();
  /* Chain of cleanup actions established with make_cleanup,
     to be executed if an error happens.  */
  
***************
*** 211,217
  /* Control C comes here */
  
  void
! request_quit ()
  {
    quit_flag = 1;
    if (immediate_quit)

--- 212,219 -----
  /* Control C comes here */
  
  void
! request_quit (sig)
! int sig;
  {
  #ifdef NS5
    signal (sig, request_quit);	/* USG sytems reset to default */
***************
*** 213,218
  void
  request_quit ()
  {
    quit_flag = 1;
    if (immediate_quit)
      quit ();

--- 215,223 -----
  request_quit (sig)
  int sig;
  {
+ #ifdef NS5
+   signal (sig, request_quit);	/* USG sytems reset to default */
+ #endif  
    quit_flag = 1;
    if (immediate_quit)
      quit ();
*** ../gdb.dist/valarith.c	Fri Dec 18 02:55:52 1987
--- valarith.c	Wed Nov  9 02:02:02 1988
***************
*** 18,23
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
  #include "defs.h"
  #include "initialize.h"
  #include "param.h"

--- 18,24 -----
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
+ #include "config.h"
  #include "defs.h"
  #include "initialize.h"
  #include "param.h"
*** ../gdb.dist/valops.c	Fri Jan  8 13:20:27 1988
--- valops.c	Wed Nov 16 01:02:31 1988
***************
*** 18,23
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
  #include "defs.h"
  #include "initialize.h"
  #include "param.h"

--- 18,24 -----
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
+ #include "config.h"
  #include "defs.h"
  #include "initialize.h"
  #include "param.h"
***************
*** 25,30
  #include "value.h"
  
  START_FILE
  
  /* Cast value ARG2 to type TYPE and return as a value.
     More general than a C cast: accepts any two types of the same length,

--- 26,33 -----
  #include "value.h"
  
  START_FILE
+ 
+ void set_internalvar_component(), run_stack_dummy();
  
  /* Cast value ARG2 to type TYPE and return as a value.
     More general than a C cast: accepts any two types of the same length,
*** ../gdb.dist/valprint.c	Sun Sep  4 02:04:52 1988
--- valprint.c	Thu Nov 17 13:07:25 1988
***************
*** 18,23
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
  #include 
  #include "defs.h"
  #include "initialize.h"

--- 18,24 -----
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
+ #include "config.h"
  #include 
  #include "defs.h"
  #include "initialize.h"
***************
*** 34,39
  static void type_print_varspec_prefix ();
  static void type_print_base ();
  
  START_FILE
  
  char **unsigned_type_table;

--- 35,42 -----
  static void type_print_varspec_prefix ();
  static void type_print_base ();
  
+ void printchar(), print_scalar_formatted(), print_spaces();
+ 
  START_FILE
  
  char **unsigned_type_table;
***************
*** 120,125
       FILE *stream;
       char format;
  {
    register int i;
    int len;
    struct type *elttype;

--- 123,129 -----
       FILE *stream;
       char format;
  {
+   extern void print_invalid_float();
    register int i;
    int len;
    struct type *elttype;
***************
*** 280,285
  	  print_scalar_formatted (valaddr, type, format, 0, stream);
  	  break;
  	}
  #ifdef IEEE_FLOAT
        if (is_nan (unpack_double (type, valaddr)))
  	{

--- 284,299 -----
  	  print_scalar_formatted (valaddr, type, format, 0, stream);
  	  break;
  	}
+ 
+       /* Test for invalid float here because "unpack_double" can't handle
+ 	 invalid floats very elegantly */
+       len = TYPE_LENGTH (type);
+       if (INVALID_FLOAT(valaddr, len))
+ 	{
+ 	  print_invalid_float(stream, valaddr, len);
+ 	  break;
+ 	}
+ 
  #ifdef IEEE_FLOAT
        if (is_nan (unpack_double (type, valaddr)))
  	{
***************
*** 300,305
    fflush (stream);
  }
  
  #ifdef IEEE_FLOAT
  
  union ieee {

--- 314,349 -----
    fflush (stream);
  }
  
+ void print_invalid_float(stream, valaddr, len)
+      FILE *stream;
+      char *valaddr;
+      int len;
+ {
+   int i;
+   unsigned char *charp;
+ 
+   int lowhalf, highhalf;
+   union { int i; char c; } test;
+   
+   fprintf (stream, "<>");
+ }
+ 
  #ifdef IEEE_FLOAT
  
  union ieee {
*** ../gdb.dist/values.c	Sat May 21 05:02:39 1988
--- values.c	Wed Nov  9 02:01:58 1988
***************
*** 18,23
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
  #include 
  #include "defs.h"
  #include "initialize.h"

--- 18,24 -----
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
+ #include "config.h"
  #include 
  #include "defs.h"
  #include "initialize.h"
*** ../gdb.dist/vax-pinsn.c	Wed Jun 22 13:16:14 1988
--- vax-pinsn.c	Wed Nov  9 02:01:57 1988
***************
*** 18,23
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
  #include 
  
  #include "defs.h"

--- 18,24 -----
  anyone else from sharing it farther.  Help stamp out software hoarding!
  */
  
+ #include "config.h"
  #include 
  
  #include "defs.h"
*** ../gdb.dist/xgdb.c	Thu Jul 21 08:15:18 1988
--- xgdb.c	Wed Nov  9 02:01:55 1988
***************
*** 20,25
  
  /* Original version was contributed by Derek Beatty, 30 June 87.  */
  
  #include "defs.h"
  #include "initialize.h"
  #include "param.h"

--- 20,26 -----
  
  /* Original version was contributed by Derek Beatty, 30 June 87.  */
  
+ #include "config.h"
  #include "defs.h"
  #include "initialize.h"
  #include "param.h"
*** ../gdb.dist/defs.h	Mon May 23 04:22:48 1988
--- defs.h	Wed Nov 16 11:44:44 1988
***************
*** 20,25
  
  #define CORE_ADDR unsigned int
  
  #define min(a, b) ((a) < (b) ? (a) : (b))
  #define max(a, b) ((a) > (b) ? (a) : (b))
  

--- 20,27 -----
  
  #define CORE_ADDR unsigned int
  
+ extern CORE_ADDR read_register();
+ 
  #define min(a, b) ((a) < (b) ? (a) : (b))
  #define max(a, b) ((a) > (b) ? (a) : (b))
  
***************
*** 29,35
  extern char *alloca ();
  extern int parse_escape ();
  extern char *reg_names[];
! 
  extern int quit_flag;
  
  extern int immediate_quit;

--- 31,37 -----
  extern char *alloca ();
  extern int parse_escape ();
  extern char *reg_names[];
! extern char *get_exec_file();
  extern int quit_flag;
  extern unsigned int register_addr();
  extern char *internalvar_name(), *xmalloc(), *xrealloc();
***************
*** 31,36
  extern char *reg_names[];
  
  extern int quit_flag;
  
  extern int immediate_quit;
  

--- 33,40 -----
  extern char *reg_names[];
  extern char *get_exec_file();
  extern int quit_flag;
+ extern unsigned int register_addr();
+ extern char *internalvar_name(), *xmalloc(), *xrealloc();
  
  extern long lseek();
  extern void free();
***************
*** 32,37
  
  extern int quit_flag;
  
  extern int immediate_quit;
  
  #define QUIT { if (quit_flag) quit (); }

--- 36,46 -----
  extern unsigned int register_addr();
  extern char *internalvar_name(), *xmalloc(), *xrealloc();
  
+ extern long lseek();
+ extern void free();
+ 
+ extern char *re_comp(), *re_exec();
+ 
  extern int immediate_quit;
  
  extern CORE_ADDR parse_and_eval_address(), parse_and_eval_address_1();
***************
*** 34,39
  
  extern int immediate_quit;
  
  #define QUIT { if (quit_flag) quit (); }
  
  enum command_class

--- 43,61 -----
  
  extern int immediate_quit;
  
+ extern CORE_ADDR parse_and_eval_address(), parse_and_eval_address_1();
+ extern CORE_ADDR find_line_pc();
+ 
+ extern void clear_momentary_breakpoints(), clear_breakpoint_commands();
+ extern void delete_current_display();
+ extern void init_source_path(), error(), fatal();
+ extern void free_all_values(), do_breakpoint_commands(), perror_with_name();
+ extern void add_com(), add_prefix_command(), add_com_alias(), add_info();
+ extern void add_info_alias(), error_no_arg(), set_next_address();
+ extern void set_internalvar(), write_register(), error_no_arg();
+ extern void print_expression();
+ 
+ extern void quit();
  #define QUIT { if (quit_flag) quit (); }
  
  enum command_class
*** ../gdb.dist/symtab.h	Fri Apr  8 18:17:50 1988
--- symtab.h	Wed Nov 23 02:59:16 1988
***************
*** 48,55
  
  /* Address and length of the vector recording all misc function names/addresses.  */
  
! struct misc_function *misc_function_vector;
! int misc_function_count;
  
  #include "symseg.h"
  

--- 48,55 -----
  
  /* Address and length of the vector recording all misc function names/addresses.  */
  
! extern struct misc_function *misc_function_vector;
! extern int misc_function_count;
  
  #include "symseg.h"
  
***************
*** 97,103
  
  /* This is the list of struct symtab's that gdb considers current.  */
  
! struct symtab *symtab_list;
  
  /* This symtab variable specifies the current file for printing source lines */
  

--- 97,103 -----
  
  /* This is the list of struct symtab's that gdb considers current.  */
  
! extern struct symtab *symtab_list;
  
  /* This symtab variable specifies the current file for printing source lines */
  
***************
*** 101,107
  
  /* This symtab variable specifies the current file for printing source lines */
  
! struct symtab *current_source_symtab;
  
  /* This is the next line to print for listing source lines.  */
  

--- 101,107 -----
  
  /* This symtab variable specifies the current file for printing source lines */
  
! extern struct symtab *current_source_symtab;
  
  /* This is the next line to print for listing source lines.  */
  
***************
*** 105,111
  
  /* This is the next line to print for listing source lines.  */
  
! int current_source_line;
  
  #define BLOCKLIST(symtab) (symtab)->blockvector
  #define BLOCKVECTOR(symtab) (symtab)->blockvector

--- 105,111 -----
  
  /* This is the next line to print for listing source lines.  */
  
! extern int current_source_line;
  
  #define BLOCKLIST(symtab) (symtab)->blockvector
  #define BLOCKVECTOR(symtab) (symtab)->blockvector
***************
*** 206,212
     Second arg nonzero means if pc is on the boundary
     use the previous statement's line number.  */
  
! struct symtab_and_line find_pc_line ();
  
  /* Given a string, return the line specified by it.
     For commands like "list" and "breakpoint".  */

--- 206,212 -----
     Second arg nonzero means if pc is on the boundary
     use the previous statement's line number.  */
  
! extern struct symtab_and_line find_pc_line ();
  
  /* Given a string, return the line specified by it.
     For commands like "list" and "breakpoint".  */
***************
*** 211,215
  /* Given a string, return the line specified by it.
     For commands like "list" and "breakpoint".  */
  
! struct symtab_and_line decode_line_spec ();
! struct symtab_and_line decode_line_1 ();

--- 211,215 -----
  /* Given a string, return the line specified by it.
     For commands like "list" and "breakpoint".  */
  
! extern struct symtab_and_line decode_line_spec ();
! extern struct symtab_and_line decode_line_1 ();
@//E*O*F patch#4//
chmod u=rw,g=r,o=r patch#4
 
echo Inspecting for damage in transit...
temp=/tmp/shar$$; dtemp=/tmp/.shar$$
trap "rm -f $temp $dtemp; exit" 0 1 2 3 15
cat > $temp <<\!!!
    719   2258  16810 patch#4
!!!
wc  patch#4 | sed 's=[^ ]*/==' | diff -b $temp - >$dtemp
if [ -s $dtemp ]
then echo "Ouch [diff of wc output]:" ; cat $dtemp
else echo "No problems found."
fi
exit 0