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