From 37e4214cbd40fd7395bcc43d37905cc56dcb6512 Mon Sep 17 00:00:00 2001 From: Stu Grossman <grossman@cygnus> Date: Tue, 23 Jun 1992 04:43:33 +0000 Subject: Create new patch file to convert normal (mundane) GDB into SUPER-ENERGIZE GDB! --- gdb/cadillac-patches | 946 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 946 insertions(+) create mode 100755 gdb/cadillac-patches (limited to 'gdb') diff --git a/gdb/cadillac-patches b/gdb/cadillac-patches new file mode 100755 index 0000000..e6edc73 --- /dev/null +++ b/gdb/cadillac-patches @@ -0,0 +1,946 @@ +# Apply these patches to GDB to produce an Energize GDB. +# To apply these patches, first cd to gdb-XX/gdb, then run patch -p0 < thisfile. +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/Makefile.in,v +retrieving revision 1.158 +diff -c -r1.158 Makefile.in +*** 1.158 1992/06/19 22:39:40 +--- Makefile.in 1992/06/23 04:22:01 +*************** +*** 124,129 **** +--- 124,134 ---- + READLINE_DEP = $$(READLINE_DIR) + RL_LIB = ./../readline${subdir}/libreadline.a + ++ # Cadillac libraries ++ CADILLAC_DIR = ${srcdir}/deblib ++ CADILLAC_INCLUDES = -I${CADILLAC_DIR}/connection -I${CADILLAC_DIR}/debugger ++ CADILLAC_LIBS = ${srcdir}/deblib/connection/libconn.a ++ + # All the includes used for CFLAGS and for lint. + # -I. for config files. + # -I${srcdir} possibly for regex.h also. +*************** +*** 156,162 **** + # {X,T}M_CLIBS, defined in *config files, have host- and target-dependent libs. + # TERMCAP comes after readline, since readline depends on it. + CLIBS = ${BFD_LIB} ${RL_LIB} ${TERMCAP} ${MMALLOC_LIB} ${LIBIBERTY} \ +! ${XM_CLIBS} ${TM_CLIBS} + CDEPS = ${XM_CDEPS} ${TM_CDEPS} ${BFD_LIB} ${MMALLOC_LIB} ${LIBIBERTY} \ + ${RL_LIB} ${MMALLOC_LIB} + +--- 161,167 ---- + # {X,T}M_CLIBS, defined in *config files, have host- and target-dependent libs. + # TERMCAP comes after readline, since readline depends on it. + CLIBS = ${BFD_LIB} ${RL_LIB} ${TERMCAP} ${MMALLOC_LIB} ${LIBIBERTY} \ +! ${XM_CLIBS} ${TM_CLIBS} ${CADILLAC_LIBS} + CDEPS = ${XM_CDEPS} ${TM_CDEPS} ${BFD_LIB} ${MMALLOC_LIB} ${LIBIBERTY} \ + ${RL_LIB} ${MMALLOC_LIB} + +*************** +*** 195,201 **** + ${DEMANGLER}.c mem-break.c target.c inftarg.c \ + dbxread.c coffread.c elfread.c dwarfread.c xcoffread.c \ + ieee-float.c language.c parse.c buildsym.c objfiles.c \ +! minsyms.c mipsread.c + + # Source files in subdirectories (which will be handled separately by + # 'make gdb.tar.Z'). +--- 200,206 ---- + ${DEMANGLER}.c mem-break.c target.c inftarg.c \ + dbxread.c coffread.c elfread.c dwarfread.c xcoffread.c \ + ieee-float.c language.c parse.c buildsym.c objfiles.c \ +! minsyms.c mipsread.c cadillac.c + + # Source files in subdirectories (which will be handled separately by + # 'make gdb.tar.Z'). +*************** +*** 280,286 **** + command.o utils.o expprint.o environ.o version.o gdbtypes.o \ + copying.o $(DEPFILES) ${DEMANGLER}.o mem-break.o target.o \ + inftarg.o ieee-float.o putenv.o parse.o language.o $(YYOBJ) \ +! buildsym.o objfiles.o minsyms.o \ + dbxread.o coffread.o elfread.o dwarfread.o xcoffread.o mipsread.o + + RAPP_OBS = rgdb.o rudp.o rserial.o serial.o udp.o $(XDEPFILES) +--- 285,291 ---- + command.o utils.o expprint.o environ.o version.o gdbtypes.o \ + copying.o $(DEPFILES) ${DEMANGLER}.o mem-break.o target.o \ + inftarg.o ieee-float.o putenv.o parse.o language.o $(YYOBJ) \ +! buildsym.o objfiles.o minsyms.o cadillac.o \ + dbxread.o coffread.o elfread.o dwarfread.o xcoffread.o mipsread.o + + RAPP_OBS = rgdb.o rudp.o rserial.o serial.o udp.o $(XDEPFILES) +*************** +*** 695,700 **** +--- 700,708 ---- + + ttyflush.o: ${srcdir}/nindy-share/ttyflush.c + ${CC} -c ${INTERNAL_CFLAGS} ${srcdir}/nindy-share/ttyflush.c ++ ++ cadillac.o: ${srcdir}/cadillac.c ++ ${CC} -c ${INTERNAL_CFLAGS} ${CADILLAC_INCLUDES} ${srcdir}/cadillac.c + + lint: $(LINTFILES) + $(LINT) $(INCLUDE_CFLAGS) $(LINTFLAGS) $(LINTFILES) \ +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/breakpoint.c,v +retrieving revision 1.36 +diff -c -r1.36 breakpoint.c +*** 1.36 1992/06/17 21:53:28 +--- breakpoint.c 1992/06/23 04:19:21 +*************** +*** 273,278 **** +--- 273,280 ---- + b->cond_string = NULL; + if (from_tty) + printf_filtered ("Breakpoint %d now unconditional.\n", bnum); ++ if (cadillac) ++ cadillac_condition_breakpoint(b); + } + else + { +*************** +*** 281,286 **** +--- 283,290 ---- + typed in or the decompiled expression. */ + b->cond_string = savestring (arg, strlen (arg)); + b->cond = parse_exp_1 (&arg, block_for_pc (b->address), 0); ++ if (cadillac) ++ cadillac_condition_breakpoint(b); + if (*arg) + error ("Junk at end of expression"); + } +*************** +*** 316,330 **** + ALL_BREAKPOINTS (b) + if (b->number == bnum) + { +! if (from_tty && input_from_terminal_p ()) +! { +! printf_filtered ("Type commands for when breakpoint %d is hit, one per line.\n\ + End with a line saying just \"end\".\n", bnum); +- fflush (stdout); +- } + l = read_command_lines (); + free_command_lines (&b->commands); + b->commands = l; + return; + } + error ("No breakpoint number %d.", bnum); +--- 320,333 ---- + ALL_BREAKPOINTS (b) + if (b->number == bnum) + { +! if ((from_tty && input_from_terminal_p ()) || cadillac) +! printf_filtered ("Type commands for when breakpoint %d is hit, one per line.\n\ + End with a line saying just \"end\".\n", bnum); + l = read_command_lines (); + free_command_lines (&b->commands); + b->commands = l; ++ if (cadillac) ++ cadillac_commands_breakpoint(b); + return; + } + error ("No breakpoint number %d.", bnum); +*************** +*** 925,930 **** +--- 928,935 ---- + { + b->ignore_count--; + this_bp_stop = 0; ++ if (cadillac) ++ cadillac_ignore_breakpoint(b); + } + else + { +*************** +*** 1365,1370 **** +--- 1370,1378 ---- + mention (b) + struct breakpoint *b; + { ++ if (cadillac) ++ cadillac_create_breakpoint(b); ++ + switch (b->type) + { + case bp_watchpoint: +*************** +*** 2106,2111 **** +--- 2114,2122 ---- + register struct breakpoint *b; + register bpstat bs; + ++ if (cadillac) ++ cadillac_delete_breakpoint(bpt); ++ + if (bpt->inserted) + target_remove_breakpoint(bpt->address, bpt->shadow_contents); + +*************** +*** 2277,2282 **** +--- 2288,2295 ---- + if (b->number == bptnum) + { + b->ignore_count = count; ++ if (cadillac) ++ cadillac_ignore_breakpoint(b); + if (!from_tty) + return; + else if (count == 0) +*************** +*** 2301,2307 **** + struct breakpoint *b; + + ALL_BREAKPOINTS (b) +! b->ignore_count = 0; + } + + /* Command to set ignore-count of breakpoint N to COUNT. */ +--- 2314,2324 ---- + struct breakpoint *b; + + ALL_BREAKPOINTS (b) +! { +! b->ignore_count = 0; +! if (cadillac) +! cadillac_ignore_breakpoint(b); +! } + } + + /* Command to set ignore-count of breakpoint N to COUNT. */ +*************** +*** 2368,2373 **** +--- 2385,2393 ---- + { + bpt->enable = enabled; + ++ if (cadillac) ++ cadillac_enable_breakpoint(bpt); ++ + if (xgdb_verbose && bpt->type == bp_breakpoint) + printf ("breakpoint #%d enabled\n", bpt->number); + +*************** +*** 2415,2420 **** +--- 2435,2443 ---- + disable_breakpoint (bpt) + struct breakpoint *bpt; + { ++ if (cadillac) ++ cadillac_disable_breakpoint(bpt); ++ + bpt->enable = disabled; + + if (xgdb_verbose && bpt->type == bp_breakpoint) +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/command.c,v +retrieving revision 1.15 +diff -c -r1.15 command.c +*** 1.15 1992/06/23 03:33:41 +--- command.c 1992/06/23 04:19:26 +*************** +*** 1149,1155 **** + } + + if (pid != -1) +! while ((rc = wait (&status)) != pid && rc != -1) + ; + else + error ("Fork failed"); +--- 1149,1155 ---- + } + + if (pid != -1) +! while ((rc = cadillac ? cadillac_wait(&status) : wait (&status)) != pid && rc != -1) + ; + else + error ("Fork failed"); +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/defs.h,v +retrieving revision 1.36 +diff -c -r1.36 defs.h +*** 1.36 1992/06/15 14:26:55 +--- defs.h 1992/06/16 01:24:19 +*************** +*** 774,777 **** +--- 774,846 ---- + extern CORE_ADDR + push_word (); + ++ /* Energize/Cadillac stuff */ ++ ++ /* Non-zero means that we're doing the cadillac interface. */ ++ extern int cadillac; ++ ++ /* Get a pty for use with cadillac */ ++ extern char *cadillac_getpty PARAMS ((void)); ++ ++ /* Notify cadillac of new process creation */ ++ extern void cadillac_new_process PARAMS ((void)); ++ ++ /* Low level wait routine for wait_for_inferior */ ++ extern int cadillac_wait PARAMS ((int *)); ++ ++ /* Initialize */ ++ extern void cadillac_initialize PARAMS ((char *, char *)); ++ ++ /* Main loop for cadillac protocol driver */ ++ extern void cadillac_main_loop PARAMS ((void)); ++ ++ struct cmd_list_element; ++ ++ /* Command hook for cadillac */ ++ extern void cadillac_call_command PARAMS ((struct cmd_list_element *, ++ char *, int)); ++ ++ /* Read commands for the command command, and others */ ++ extern char *cadillac_command_line_input PARAMS ((void)); ++ ++ struct symbol; ++ struct type; ++ ++ extern void cadillac_start_variable_annotation PARAMS ((char *, ++ struct symbol *, ++ struct type *, ++ CORE_ADDR, ++ char *)); ++ ++ extern void cadillac_end_variable_annotation PARAMS ((void)); ++ ++ extern void cadillac_annotate_function PARAMS ((char *, int, int)); ++ ++ struct objfile; ++ extern void cadillac_symbol_file PARAMS ((struct objfile *)); ++ ++ /*extern void cadillac_query PARAMS ((char *, ...));*/ ++ extern void cadillac_query (); /* Prototypes for varargs don't work */ ++ ++ extern char *cadillac_command_line_input PARAMS ((void)); ++ ++ extern void cadillac_acknowledge_query PARAMS ((char *)); ++ ++ extern void cadillac_fputs PARAMS ((const char *)); ++ ++ struct breakpoint; ++ extern void cadillac_condition_breakpoint PARAMS ((struct breakpoint *)); ++ ++ extern void cadillac_commands_breakpoint PARAMS ((struct breakpoint *)); ++ ++ extern void cadillac_ignore_breakpoint PARAMS ((struct breakpoint *)); ++ ++ extern void cadillac_create_breakpoint PARAMS ((struct breakpoint *)); ++ ++ extern void cadillac_delete_breakpoint PARAMS ((struct breakpoint *)); ++ ++ extern void cadillac_enable_breakpoint PARAMS ((struct breakpoint *)); ++ ++ extern void cadillac_disable_breakpoint PARAMS ((struct breakpoint *)); ++ + #endif /* !defined (DEFS_H) */ +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/inflow.c,v +retrieving revision 1.25 +diff -c -r1.25 inflow.c +*** 1.25 1992/05/17 23:54:22 +--- inflow.c 1992/06/15 23:02:32 +*************** +*** 81,87 **** + static short pgrp_inferior; + static short pgrp_ours; + # else /* not def SHORT_PGRP */ +! static int pgrp_inferior; + static int pgrp_ours; + # endif /* not def SHORT_PGRP */ + #else /* not def TIOCGPGRP */ +--- 81,87 ---- + static short pgrp_inferior; + static short pgrp_ours; + # else /* not def SHORT_PGRP */ +! int pgrp_inferior; + static int pgrp_ours; + # endif /* not def SHORT_PGRP */ + #else /* not def TIOCGPGRP */ +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/infrun.c,v +retrieving revision 1.49 +diff -c -r1.49 infrun.c +*** 1.49 1992/06/23 00:24:50 +--- infrun.c 1992/06/23 04:19:35 +*************** +*** 615,620 **** +--- 615,622 ---- + Here we must get it up to actual execution of the real program. */ + + inferior_pid = pid; /* Needed for wait_for_inferior stuff below */ ++ if (cadillac) ++ cadillac_new_process(); + + clear_proceed_status (); + +*************** +*** 753,758 **** +--- 755,762 ---- + + attach (pid); + inferior_pid = pid; ++ if (cadillac) ++ cadillac_new_process(); + push_target (&child_ops); + + mark_breakpoints_out (); +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/inftarg.c,v +retrieving revision 1.11 +diff -c -r1.11 inftarg.c +*** 1.11 1992/03/29 23:21:27 +--- inftarg.c 1992/06/15 23:56:08 +*************** +*** 58,64 **** + #ifdef USE_PROC_FS + pid = proc_wait (status); + #else +! pid = wait (status); + #endif + if (pid == -1) /* No more children to wait for */ + { +--- 58,67 ---- + #ifdef USE_PROC_FS + pid = proc_wait (status); + #else +! if (cadillac) +! pid = cadillac_wait (status); +! else +! pid = wait (status); + #endif + if (pid == -1) /* No more children to wait for */ + { +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/main.c,v +retrieving revision 1.47 +diff -c -r1.47 main.c +*** 1.47 1992/06/09 06:09:23 +--- main.c 1992/06/13 03:32:16 +*************** +*** 397,402 **** +--- 397,403 ---- + char *corearg = NULL; + char *cdarg = NULL; + char *ttyarg = NULL; ++ char *cadillac_id = NULL; + + /* Pointers to all arguments of +command option. */ + char **cmdarg; +*************** +*** 492,497 **** +--- 493,499 ---- + {"tty", required_argument, 0, 't'}, + {"baud", required_argument, 0, 'b'}, + {"b", required_argument, 0, 'b'}, ++ {"context", required_argument, 0, 12}, + /* Allow machine descriptions to add more options... */ + #ifdef ADDITIONAL_OPTIONS + ADDITIONAL_OPTIONS +*************** +*** 524,529 **** +--- 526,534 ---- + case 11: + cdarg = optarg; + break; ++ case 12: ++ cadillac_id = optarg; ++ break; + case 's': + symarg = optarg; + break; +*************** +*** 670,675 **** +--- 675,683 ---- + free ((PTR)dirarg); + do_cleanups (ALL_CLEANUPS); + ++ if (cadillac_id) ++ cadillac_initialize (cadillac_id, execarg); ++ + if (execarg != NULL + && symarg != NULL + && strcmp (execarg, symarg) == 0) +*************** +*** 691,696 **** +--- 699,705 ---- + if (!setjmp (to_top_level)) + symbol_file_command (symarg, 0); + } ++ + do_cleanups (ALL_CLEANUPS); + + /* After the symbol file has been read, print a newline to get us +*************** +*** 818,824 **** + if (!setjmp (to_top_level)) + { + do_cleanups (ALL_CLEANUPS); /* Do complete cleanup */ +! command_loop (); + quit_command ((char *)0, instream == stdin); + } + } +--- 827,836 ---- + if (!setjmp (to_top_level)) + { + do_cleanups (ALL_CLEANUPS); /* Do complete cleanup */ +! if (cadillac_id) +! cadillac_main_loop(); +! else +! command_loop (); + quit_command ((char *)0, instream == stdin); + } + } +*************** +*** 880,886 **** + else if (c->function.cfunc == NO_FUNCTION) + error ("That is not a command, just a help topic."); + else +! (*c->function.cfunc) (arg, from_tty & caution); + } + + /* Tell the user if the language has changed (except first time). */ +--- 892,901 ---- + else if (c->function.cfunc == NO_FUNCTION) + error ("That is not a command, just a help topic."); + else +! if (cadillac) +! cadillac_call_command (c, arg, from_tty & caution); +! else +! (*c->function.cfunc) (arg, from_tty & caution); + } + + /* Tell the user if the language has changed (except first time). */ +*************** +*** 1516,1522 **** + while (1) + { + dont_repeat (); +! p = command_line_input ((char *) NULL, instream == stdin); + if (p == NULL) + /* Treat end of file like "end". */ + break; +--- 1531,1540 ---- + while (1) + { + dont_repeat (); +! if (cadillac) +! p = cadillac_command_line_input(); +! else +! p = command_line_input ((char *) NULL, instream == stdin); + if (p == NULL) + /* Treat end of file like "end". */ + break; +*************** +*** 1820,1826 **** + void + print_prompt () + { +! printf ("%s", prompt); + fflush (stdout); + } + +--- 1838,1844 ---- + void + print_prompt () + { +! printf_filtered ("%s", prompt); + fflush (stdout); + } + +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/mipsread.c,v +retrieving revision 1.71 +diff -c -r1.71 mipsread.c +*** 1.71 1992/06/17 18:14:19 +--- mipsread.c 1992/06/23 04:19:41 +*************** +*** 67,72 **** +--- 67,73 ---- + #include <sys/param.h> + #include <sys/file.h> + #include <sys/stat.h> ++ #include <strings.h> + + #include "coff/mips.h" /* COFF-like aspects of ecoff files */ + #include "coff/ecoff-ext.h" /* External forms of ecoff sym structures */ +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/printcmd.c,v +retrieving revision 1.28 +diff -c -r1.28 printcmd.c +*** 1.28 1992/06/13 18:20:41 +--- printcmd.c 1992/06/14 22:11:35 +*************** +*** 778,783 **** +--- 778,792 ---- + { + int histindex = record_latest_value (val); + ++ if (cadillac) ++ { ++ char buf[20]; ++ ++ sprintf(buf, "$%d", histindex); ++ cadillac_start_variable_annotation(buf, NULL, VALUE_TYPE(val), ++ VALUE_ADDRESS(val), ""); ++ } ++ + if (inspect) + printf ("\031(gdb-makebuffer \"%s\" %d '(\"", exp, histindex); + else +*************** +*** 784,789 **** +--- 793,800 ---- + if (histindex >= 0) printf_filtered ("$%d = ", histindex); + + print_formatted (val, format, fmt.size); ++ if (cadillac) ++ cadillac_end_variable_annotation(); + printf_filtered ("\n"); + if (inspect) + printf("\") )\030"); +*************** +*** 1608,1618 **** +--- 1619,1639 ---- + standard indentation here is 4 spaces, and val_print indents + 2 for each recurse. */ + val = read_var_value (sym, FRAME_INFO_ID (fi)); ++ ++ if (cadillac) ++ cadillac_start_variable_annotation(SYMBOL_NAME(sym), sym, ++ VALUE_TYPE(val), ++ VALUE_ADDRESS(val), ""); ++ + if (val) + val_print (VALUE_TYPE (val), VALUE_CONTENTS (val), VALUE_ADDRESS (val), + stream, 0, 0, 2, Val_no_prettyprint); + else + fputs_filtered ("???", stream); ++ ++ if (cadillac) ++ cadillac_end_variable_annotation(); ++ + first = 0; + } + +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/stack.c,v +retrieving revision 1.30 +diff -c -r1.30 stack.c +*** 1.30 1992/06/20 23:30:33 +--- stack.c 1992/06/23 04:19:48 +*************** +*** 159,165 **** + if (addressprint) + printf_filtered ("%s in ", local_hex_string(fi->pc)); + +! fputs_demangled (fname, stdout, 0); + fputs_filtered (" (...)\n", stdout); + + return; +--- 159,168 ---- + if (addressprint) + printf_filtered ("%s in ", local_hex_string(fi->pc)); + +! if (cadillac) +! cadillac_annotate_function(fname, 0, level); +! else +! fputs_demangled (fname, stdout, 0); + fputs_filtered (" (...)\n", stdout); + + return; +*************** +*** 218,224 **** + if (addressprint) + if (fi->pc != sal.pc || !sal.symtab) + printf_filtered ("%s in ", local_hex_string(fi->pc)); +! fputs_demangled (funname ? funname : "??", stdout, 0); + wrap_here (" "); + fputs_filtered (" (", stdout); + if (args) +--- 221,230 ---- + if (addressprint) + if (fi->pc != sal.pc || !sal.symtab) + printf_filtered ("%s in ", local_hex_string(fi->pc)); +! if (cadillac) +! cadillac_annotate_function(funname ? funname : "??", 0, level); +! else +! fputs_demangled (funname ? funname : "??", stdout, 0); + wrap_here (" "); + fputs_filtered (" (", stdout); + if (args) +*************** +*** 255,261 **** + { + if (addressprint && mid_statement) + printf_filtered ("%s\t", local_hex_string(fi->pc)); +! print_source_lines (sal.symtab, sal.line, sal.line + 1, 0); + } + current_source_line = max (sal.line - lines_to_list/2, 1); + } +--- 261,268 ---- + { + if (addressprint && mid_statement) + printf_filtered ("%s\t", local_hex_string(fi->pc)); +! if (!cadillac) +! print_source_lines (sal.symtab, sal.line, sal.line + 1, 0); + } + current_source_line = max (sal.line - lines_to_list/2, 1); + } +*************** +*** 429,435 **** + if (funname) + { + printf_filtered (" in "); +! fputs_demangled (funname, stdout, DMGL_ANSI | DMGL_PARAMS); + } + wrap_here (" "); + if (sal.symtab) +--- 436,446 ---- + if (funname) + { + printf_filtered (" in "); +! if (cadillac) +! cadillac_annotate_function(funname, DMGL_ANSI | DMGL_PARAMS, +! selected_frame_level); +! else +! fputs_demangled (funname, stdout, DMGL_ANSI | DMGL_PARAMS); + } + wrap_here (" "); + if (sal.symtab) +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/symfile.c,v +retrieving revision 1.53 +diff -c -r1.53 symfile.c +*** 1.53 1992/06/13 16:20:12 +--- symfile.c 1992/06/14 22:11:39 +*************** +*** 555,560 **** +--- 555,563 ---- + fflush (stdout); + } + ++ if (cadillac) ++ cadillac_symbol_file(objfile); ++ + return (objfile); + } + +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/utils.c,v +retrieving revision 1.50 +diff -c -r1.50 utils.c +*** 1.50 1992/06/15 14:27:07 +--- utils.c 1992/06/16 01:24:28 +*************** +*** 96,101 **** +--- 96,102 ---- + + char *error_pre_print; + char *warning_pre_print = "\nwarning: "; ++ + + /* Add a new cleanup to the cleanup_chain, + and return the previous chain pointer +*************** +*** 694,700 **** + register int ans2; + + /* Automatically answer "yes" if input is not from a terminal. */ +! if (!input_from_terminal_p ()) + return 1; + + while (1) +--- 695,701 ---- + register int ans2; + + /* Automatically answer "yes" if input is not from a terminal. */ +! if (!input_from_terminal_p () && !cadillac) + return 1; + + while (1) +*************** +*** 701,721 **** + { + va_start (args); + ctlstr = va_arg (args, char *); + vfprintf_filtered (stdout, ctlstr, args); +- va_end (args); + printf_filtered ("(y or n) "); +! fflush (stdout); +! answer = fgetc (stdin); +! clearerr (stdin); /* in case of C-d */ +! if (answer == EOF) /* C-d */ +! return 1; +! if (answer != '\n') /* Eat rest of input line, to EOF or newline */ +! do +! { +! ans2 = fgetc (stdin); +! clearerr (stdin); +! } +! while (ans2 != EOF && ans2 != '\n'); + if (answer >= 'a') + answer -= 040; + if (answer == 'Y') +--- 702,734 ---- + { + va_start (args); + ctlstr = va_arg (args, char *); ++ if (cadillac) ++ cadillac_query (ctlstr, args); + vfprintf_filtered (stdout, ctlstr, args); + printf_filtered ("(y or n) "); +! if (cadillac) +! { +! char *buf; +! +! buf = cadillac_command_line_input(); +! answer = buf ? *buf : 'Y'; +! cadillac_acknowledge_query(buf); +! } +! else +! { +! fflush (stdout); +! answer = fgetc (stdin); +! clearerr (stdin); /* in case of C-d */ +! if (answer == EOF) /* C-d */ +! return 1; +! if (answer != '\n') /* Eat rest of input line, to EOF or newline */ +! do +! { +! ans2 = fgetc (stdin); +! clearerr (stdin); +! } +! while (ans2 != EOF && ans2 != '\n'); +! } + if (answer >= 'a') + answer -= 040; + if (answer == 'Y') +*************** +*** 723,728 **** +--- 736,742 ---- + if (answer == 'N') + return 0; + printf_filtered ("Please answer y or n.\n"); ++ va_end (args); + } + } + +*************** +*** 989,994 **** +--- 1003,1014 ---- + if (linebuffer == 0) + return; + ++ if (cadillac) ++ { ++ cadillac_fputs(linebuffer); ++ return; ++ } ++ + /* Don't do any filtering if it is disabled. */ + if (stream != stdout + || (lines_per_page == UINT_MAX && chars_per_line == UINT_MAX)) +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/valprint.c,v +retrieving revision 1.42 +diff -c -r1.42 valprint.c +*** 1.42 1992/06/23 03:33:47 +--- valprint.c 1992/06/23 04:19:55 +*************** +*** 485,490 **** +--- 485,491 ---- + struct type **dont_print; + { + int i, len, n_baseclasses; ++ char expr_tag[100]; /* Cadillac */ + + check_stub_type (type); + +*************** +*** 549,554 **** +--- 550,563 ---- + fputs_filtered (TYPE_FIELD_NAME (type, i), stream); + fputs_filtered (" = ", stream); + } ++ ++ sprintf(expr_tag, ".%s", TYPE_FIELD_NAME(type, i)); ++ ++ if (cadillac) ++ cadillac_start_variable_annotation(expr_tag, NULL, ++ TYPE_FIELD_TYPE(type, i), ++ (CORE_ADDR) (valaddr + TYPE_FIELD_BITPOS(type, i) / 8), ++ ""); + if (TYPE_FIELD_PACKED (type, i)) + { + value v; +*************** +*** 567,572 **** +--- 576,583 ---- + valaddr + TYPE_FIELD_BITPOS (type, i) / 8, + 0, stream, format, 0, recurse + 1, pretty); + } ++ if (cadillac) ++ cadillac_end_variable_annotation(); + } + if (pretty) + { +*************** +*** 801,806 **** +--- 812,818 ---- + unsigned int rep1; + /* Number of repetitions we have detected so far. */ + unsigned int reps; ++ char expr_tag[100]; /* Cadillac */ + + if (i != 0) + if (arrayprint) +*************** +*** 822,827 **** +--- 834,845 ---- + ++rep1; + } + ++ sprintf(expr_tag, "[%d]", i); ++ if (cadillac) ++ cadillac_start_variable_annotation(expr_tag, NULL, ++ elttype, ++ (CORE_ADDR) (valaddr + i * eltlen), ++ ""); + if (reps > REPEAT_COUNT_THRESHOLD) + { + val_print (elttype, valaddr + i * eltlen, +*************** +*** 838,843 **** +--- 856,863 ---- + recurse + 1, pretty); + things_printed++; + } ++ if (cadillac) ++ cadillac_end_variable_annotation(); + } + if (i < len) + fprintf_filtered (stream, "..."); +=================================================================== +RCS file: /local/cvsfiles/devo/gdb/config/ncr3000.mh,v +retrieving revision 1.4 +diff -c -r1.4 ncr3000.mh +*** 1.4 1992/06/15 19:25:13 +--- ncr3000.mh 1992/06/16 01:28:40 +*************** +*** 38,40 **** +--- 38,46 ---- + # The /usr/ucb/install program is incompatible (complains about unknown + # group staff). Use good old cp... + INSTALL = cp ++ ++ # These are the libs that are needed for the Cadillac version of gdb on ++ # SVR4. Note that we MUST include the standard C library before libucb.a, ++ # otherwise we get lots of broken stuff we don't want. ++ CADILLAC_LIBS = ${srcdir}/deblib/connection/libconn.a -L/usr/lib -lm -lnet \ ++ -lresolv -lform -lsocket -lc /usr/ucblib/libucb.a -lnsl -- cgit v1.1