# Apply these patches to GDB to produce an Energize GDB. # To apply these patches, first cd to gdb-XX/gdb, run "patch -p0 <thisfile", # and then Sanitize. =================================================================== *** 2.72 1992/09/27 06:48:41 --- .Sanitize 1992/09/28 21:34:08 *************** *** 74,79 **** --- 74,82 ---- doc dwarfread.c elfread.c + energize + energize.c + energize.h environ.c environ.h eval.c =================================================================== *** 1.187 1992/09/26 08:06:30 --- Makefile.in 1992/09/28 21:34:08 *************** *** 123,128 **** --- 123,135 ---- READLINE_DEP = $$(READLINE_DIR) RL_LIB = ./../readline${subdir}/libreadline.a + # Energize libraries. Works slightly differently than other libraries + # because it is a gdb subdir and we try to build the energize library + # if it doesn't exist, unlike readline, bfd, mmalloc, etc. Note + # that SDIR and BDIR will be different if we configured with -srcdir. + ENERGIZE_DIR = energize + ENERGIZE_LIB = ${ENERGIZE_DIR}/libconn.a + # All the includes used for CFLAGS and for lint. # -I. for config files. # -I${srcdir} possibly for regex.h also. *************** *** 157,166 **** # Libraries and corresponding dependencies for compiling gdb. # {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} ${OPCODES} ${MMALLOC_LIB} ${LIBIBERTY} \ ! ${XM_CLIBS} ${TM_CLIBS} ${NAT_CLIBS} ! CDEPS = ${XM_CDEPS} ${TM_CDEPS} ${NAT_CDEPS} \ ! ${BFD_LIB} ${RL_LIB} ${OPCODES} ${MMALLOC_LIB} ${LIBIBERTY} ADD_FILES = ${REGEX} ${ALLOCA} ${XM_ADD_FILES} ${TM_ADD_FILES} ${NAT_ADD_FILES} ADD_DEPS = ${REGEX1} ${ALLOCA1} ${XM_ADD_FILES} ${TM_ADD_FILES} ${NAT_ADD_FILES} --- 164,173 ---- # Libraries and corresponding dependencies for compiling gdb. # {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} ${OPCODES} ${MMALLOC_LIB} \ ! ${LIBIBERTY} ${XM_CLIBS} ${TM_CLIBS} ${NAT_CLIBS} ${ENERGIZE_LIB} ! CDEPS = ${XM_CDEPS} ${TM_CDEPS} ${NAT_CDEPS} ${BFD_LIB} ${RL_LIB} ${OPCODES} \ ! ${MMALLOC_LIB} ${LIBIBERTY} ${ENERGIZE_LIB} ADD_FILES = ${REGEX} ${ALLOCA} ${XM_ADD_FILES} ${TM_ADD_FILES} ${NAT_ADD_FILES} ADD_DEPS = ${REGEX1} ${ALLOCA1} ${XM_ADD_FILES} ${TM_ADD_FILES} ${NAT_ADD_FILES} *************** *** 200,206 **** mem-break.c target.c \ dbxread.c coffread.c elfread.c dwarfread.c xcoffread.c stabsread.c \ language.c parse.c buildsym.c objfiles.c \ ! minsyms.c mipsread.c maint.c # Source files in subdirectories (which will be handled separately by # 'make gdb.tar.Z'). --- 207,213 ---- mem-break.c target.c \ dbxread.c coffread.c elfread.c dwarfread.c xcoffread.c stabsread.c \ language.c parse.c buildsym.c objfiles.c \ ! minsyms.c mipsread.c maint.c energize.c # Source files in subdirectories (which will be handled separately by # 'make gdb.tar.Z'). *************** *** 289,295 **** command.o utils.o expprint.o environ.o version.o gdbtypes.o \ copying.o $(DEPFILES) mem-break.o target.o \ putenv.o parse.o language.o $(YYOBJ) \ ! buildsym.o objfiles.o minsyms.o maint.o demangle.o \ dbxread.o coffread.o elfread.o dwarfread.o xcoffread.o mipsread.o \ stabsread.o core.o --- 296,302 ---- command.o utils.o expprint.o environ.o version.o gdbtypes.o \ copying.o $(DEPFILES) mem-break.o target.o \ putenv.o parse.o language.o $(YYOBJ) \ ! buildsym.o objfiles.o minsyms.o maint.o demangle.o energize.o \ dbxread.o coffread.o elfread.o dwarfread.o xcoffread.o mipsread.o \ stabsread.o core.o *************** *** 303,309 **** NTSSTART = kdb-start.o ! SUBDIRS = doc # For now, shortcut the "configure GDB for fewer languages" stuff. YYFILES = c-exp.tab.c m2-exp.tab.c --- 310,316 ---- NTSSTART = kdb-start.o ! SUBDIRS = doc ${ENERGIZE_DIR} # For now, shortcut the "configure GDB for fewer languages" stuff. YYFILES = c-exp.tab.c m2-exp.tab.c *************** *** 365,370 **** --- 372,391 ---- #load `echo " "$(DEPFILES) | sed -e 's/\.o/.c/g' -e 's, , ../,g'` echo "Load .c corresponding to:" $(DEPFILES) + ${ENERGIZE_LIB} : + @(cd ${ENERGIZE_DIR}; \ + $(MAKE) \ + "against=$(against)" \ + "AR=$(AR)" \ + "AR_FLAGS=$(AR_FLAGS)" \ + "CC=$(CC)" \ + "CFLAGS=$(CFLAGS)" \ + "RANLIB=$(RANLIB)" \ + "MAKEINFO=$(MAKEINFO)" \ + "INSTALL=$(INSTALL)" \ + "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_DATA=$(INSTALL_DATA)" \ + "BISON=$(BISON)") # This is useful when debugging GDB, because some Unix's don't let you run GDB # on itself without copying the executable. So "make gdb1" will make =================================================================== *** 1.48 1992/09/29 05:07:04 --- breakpoint.c 1992/09/28 21:34:09 *************** *** 273,278 **** --- 273,279 ---- b->cond_string = NULL; if (from_tty) printf_filtered ("Breakpoint %d now unconditional.\n", bnum); + energize_condition_breakpoint(b); } else { *************** *** 281,286 **** --- 282,288 ---- 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); + energize_condition_breakpoint(b); if (*arg) error ("Junk at end of expression"); } *************** *** 322,327 **** --- 324,330 ---- l = read_command_lines (); free_command_lines (&b->commands); b->commands = l; + energize_commands_breakpoint(b); return; } error ("No breakpoint number %d.", bnum); *************** *** 445,452 **** b->enable = disabled; if (!disabled_breaks) { ! fprintf (stderr, ! "Cannot insert breakpoint %d:\n", b->number); printf_filtered ("Disabling shared library breakpoints:\n"); } disabled_breaks = 1; --- 448,455 ---- b->enable = disabled; if (!disabled_breaks) { ! fprintf_filtered (stderr, "Cannot insert breakpoint %d:\n", ! b->number); printf_filtered ("Disabling shared library breakpoints:\n"); } disabled_breaks = 1; *************** *** 455,464 **** else #endif { ! fprintf (stderr, "Cannot insert breakpoint %d:\n", b->number); #ifdef ONE_PROCESS_WRITETEXT ! fprintf (stderr, ! "The same program may be running in another process.\n"); #endif memory_error (val, b->address); /* which bombs us out */ } --- 458,468 ---- else #endif { ! fprintf_filtered (stderr, "Cannot insert breakpoint %d:\n", ! b->number); #ifdef ONE_PROCESS_WRITETEXT ! fprintf_filtered (stderr, ! "The same program may be running in another process.\n"); #endif memory_error (val, b->address); /* which bombs us out */ } *************** *** 478,484 **** int val; #ifdef BREAKPOINT_DEBUG ! printf ("Removing breakpoints.\n"); #endif /* BREAKPOINT_DEBUG */ ALL_BREAKPOINTS (b) --- 482,488 ---- int val; #ifdef BREAKPOINT_DEBUG ! printf_filtered ("Removing breakpoints.\n"); #endif /* BREAKPOINT_DEBUG */ ALL_BREAKPOINTS (b) *************** *** 489,500 **** return val; b->inserted = 0; #ifdef BREAKPOINT_DEBUG ! printf ("Removed breakpoint at %s", ! local_hex_string(b->address)); ! printf (", shadow %s", ! local_hex_string(b->shadow_contents[0])); ! printf (", %s.\n", ! local_hex_string(b->shadow_contents[1])); #endif /* BREAKPOINT_DEBUG */ } --- 493,504 ---- return val; b->inserted = 0; #ifdef BREAKPOINT_DEBUG ! printf_filtered ("Removed breakpoint at %s", ! local_hex_string(b->address)); ! printf_filtered (", shadow %s", ! local_hex_string(b->shadow_contents[0])); ! printf_filtered (", %s.\n", ! local_hex_string(b->shadow_contents[1])); #endif /* BREAKPOINT_DEBUG */ } *************** *** 922,927 **** --- 926,932 ---- { b->ignore_count--; this_bp_stop = 0; + energize_ignore_breakpoint(b); } else { *************** *** 1141,1157 **** others++; if (others > 0) { ! printf ("Note: breakpoint%s ", (others > 1) ? "s" : ""); ALL_BREAKPOINTS (b) if (b->address == pc) { others--; ! printf ("%d%s%s ", ! b->number, ! (b->enable == disabled) ? " (disabled)" : "", ! (others > 1) ? "," : ((others == 1) ? " and" : "")); } ! printf ("also set at pc %s.\n", local_hex_string(pc)); } } --- 1146,1163 ---- others++; if (others > 0) { ! printf_filtered ("Note: breakpoint%s ", (others > 1) ? "s" : ""); ALL_BREAKPOINTS (b) if (b->address == pc) { others--; ! printf_filtered ("%d%s%s ", ! b->number, ! (b->enable == disabled) ? " (disabled)" : "", ! (others > 1) ? "," : ! ((others == 1) ? " and" : "")); } ! printf_filtered ("also set at pc %s.\n", local_hex_string(pc)); } } *************** *** 1373,1378 **** --- 1379,1386 ---- mention (b) struct breakpoint *b; { + energize_create_breakpoint(b); + switch (b->type) { case bp_watchpoint: *************** *** 1550,1557 **** if (sals.nelts > 1) { ! printf ("Multiple breakpoints were set.\n"); ! printf ("Use the \"delete\" command to delete unwanted breakpoints.\n"); } free ((PTR)sals.sals); } --- 1558,1565 ---- if (sals.nelts > 1) { ! printf_filtered ("Multiple breakpoints were set.\n"); ! printf_filtered ("Use the \"delete\" command to delete unwanted breakpoints.\n"); } free ((PTR)sals.sals); } *************** *** 1769,1775 **** goto win; } #endif ! printf ("No catch clause for exception %s.\n", p); #if 0 win: #endif --- 1777,1783 ---- goto win; } #endif ! printf_filtered ("No catch clause for exception %s.\n", p); #if 0 win: #endif *************** *** 1970,1985 **** b->enable = enabled; b->disposition = tempflag ? delete : donttouch; ! printf ("Breakpoint %d at %s", b->number, local_hex_string(b->address)); if (b->symtab) ! printf (": file %s, line %d.", b->symtab->filename, b->line_number); ! printf ("\n"); } if (sals.nelts > 1) { ! printf ("Multiple breakpoints were set.\n"); ! printf ("Use the \"delete\" command to delete unwanted breakpoints.\n"); } free ((PTR)sals.sals); } --- 1978,1995 ---- b->enable = enabled; b->disposition = tempflag ? delete : donttouch; ! printf_filtered ("Breakpoint %d at %s", b->number, ! local_hex_string(b->address)); if (b->symtab) ! printf_filtered (": file %s, line %d.", ! b->symtab->filename, b->line_number); ! printf_filtered ("\n"); } if (sals.nelts > 1) { ! printf_filtered ("Multiple breakpoints were set.\n"); ! printf_filtered ("Use the \"delete\" command to delete unwanted breakpoints.\n"); } free ((PTR)sals.sals); } *************** *** 2086,2095 **** } if (found->next) from_tty = 1; /* Always report if deleted more than one */ ! if (from_tty) printf ("Deleted breakpoint%s ", found->next ? "s" : ""); while (found) { ! if (from_tty) printf ("%d ", found->number); b1 = found->next; delete_breakpoint (found); found = b1; --- 2096,2106 ---- } if (found->next) from_tty = 1; /* Always report if deleted more than one */ ! if (from_tty) printf_filtered ("Deleted breakpoint%s ", ! found->next ? "s" : ""); while (found) { ! if (from_tty) printf_filtered ("%d ", found->number); b1 = found->next; delete_breakpoint (found); found = b1; *************** *** 2120,2125 **** --- 2131,2138 ---- register struct breakpoint *b; register bpstat bs; + energize_delete_breakpoint(bpt); + if (bpt->inserted) target_remove_breakpoint(bpt->address, bpt->shadow_contents); *************** *** 2144,2150 **** free ((PTR)bpt->addr_string); if (xgdb_verbose && bpt->type == bp_breakpoint) ! printf ("breakpoint #%d deleted\n", bpt->number); /* Be sure no bpstat's are pointing at it after it's been freed. */ /* FIXME, how can we find all bpstat's? We just check stop_bpstat for now. */ --- 2157,2163 ---- free ((PTR)bpt->addr_string); if (xgdb_verbose && bpt->type == bp_breakpoint) ! printf_filtered ("breakpoint #%d deleted\n", bpt->number); /* Be sure no bpstat's are pointing at it after it's been freed. */ /* FIXME, how can we find all bpstat's? We just check stop_bpstat for now. */ *************** *** 2264,2270 **** ALL_BREAKPOINTS_SAFE (b, temp) { ! sprintf (message, message1, b->number); /* Format possible error msg */ catch_errors (breakpoint_re_set_one, (char *) b, message); } --- 2277,2283 ---- ALL_BREAKPOINTS_SAFE (b, temp) { ! printf_filtered (message, message1, b->number); /* Format possible error msg */ catch_errors (breakpoint_re_set_one, (char *) b, message); } *************** *** 2298,2303 **** --- 2311,2317 ---- if (b->number == bptnum) { b->ignore_count = count; + energize_ignore_breakpoint(b); if (!from_tty) return; else if (count == 0) *************** *** 2322,2328 **** struct breakpoint *b; ALL_BREAKPOINTS (b) ! b->ignore_count = 0; } /* Command to set ignore-count of breakpoint N to COUNT. */ --- 2336,2345 ---- struct breakpoint *b; ALL_BREAKPOINTS (b) ! { ! b->ignore_count = 0; ! energize_ignore_breakpoint(b); ! } } /* Command to set ignore-count of breakpoint N to COUNT. */ *************** *** 2377,2383 **** function (b); goto win; } ! printf ("No breakpoint number %d.\n", num); win: p = p1; } --- 2394,2400 ---- function (b); goto win; } ! printf_filtered ("No breakpoint number %d.\n", num); win: p = p1; } *************** *** 2389,2396 **** { bpt->enable = enabled; if (xgdb_verbose && bpt->type == bp_breakpoint) ! printf ("breakpoint #%d enabled\n", bpt->number); check_duplicates (bpt->address); if (bpt->type == bp_watchpoint) --- 2406,2415 ---- { bpt->enable = enabled; + energize_enable_breakpoint(bpt); + if (xgdb_verbose && bpt->type == bp_breakpoint) ! printf_filtered ("breakpoint #%d enabled\n", bpt->number); check_duplicates (bpt->address); if (bpt->type == bp_watchpoint) *************** *** 2436,2441 **** --- 2455,2462 ---- disable_breakpoint (bpt) struct breakpoint *bpt; { + energize_disable_breakpoint(bpt); + bpt->enable = disabled; if (xgdb_verbose && bpt->type == bp_breakpoint) =================================================================== *** 1.18 1992/07/10 17:22:30 --- command.c 1992/09/28 21:34:09 *************** *** 1093,1098 **** --- 1093,1100 ---- else error ("gdb internal error: bad cmd_type in do_setshow_command"); (*c->function.sfunc) (NULL, from_tty, c); + if (energize) + print_prompt(); } /* Show all the settings in a list of show commands. */ *************** *** 1148,1154 **** } if (pid != -1) ! while ((rc = wait (&status)) != pid && rc != -1) ; else error ("Fork failed"); --- 1150,1156 ---- } if (pid != -1) ! while ((rc = energize_shell_wait (&status)) != pid && rc != -1) ; else error ("Fork failed"); =================================================================== *** 1.67 1992/09/21 20:01:00 --- configure.in 1992/09/28 21:34:10 *************** *** 1,4 **** ! configdirs="doc" srcname="GDB" srctrigger=main.c --- 1,4 ---- ! configdirs="energize doc" srcname="GDB" srctrigger=main.c =================================================================== *** 1.48 1992/09/15 08:55:59 --- defs.h 1992/09/28 21:34:10 *************** *** 811,814 **** --- 811,816 ---- #define MAINTENANCE_CMDS 1 #endif + #include "energize.h" + #endif /* !defined (DEFS_H) */ =================================================================== *** 2.5 1992/09/03 16:26:03 --- demangle.c 1992/09/28 21:34:10 *************** *** 37,43 **** the appropriate target configuration file. */ #ifndef DEFAULT_DEMANGLING_STYLE ! # define DEFAULT_DEMANGLING_STYLE AUTO_DEMANGLING_STYLE_STRING #endif /* String name for the current demangling style. Set by the "set demangling" --- 37,43 ---- the appropriate target configuration file. */ #ifndef DEFAULT_DEMANGLING_STYLE ! # define DEFAULT_DEMANGLING_STYLE LUCID_DEMANGLING_STYLE_STRING #endif /* String name for the current demangling style. Set by the "set demangling" =================================================================== *** 1.34 1992/09/26 05:20:04 --- infcmd.c 1992/09/28 21:34:11 *************** *** 242,247 **** --- 242,248 ---- target_create_inferior (exec_file, inferior_args, environ_vector (inferior_environ)); + energize_new_process(); } static void =================================================================== *** 1.29 1992/09/25 19:19:00 --- inflow.c 1992/09/28 21:34:11 *************** *** 87,93 **** 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 */ --- 87,93 ---- 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 */ =================================================================== *** 1.59 1992/09/26 01:49:01 --- infrun.c 1992/09/28 21:34:12 *************** *** 519,525 **** flush_cached_frames (); registers_changed (); ! target_wait (&w); #ifdef SIGTRAP_STOP_AFTER_LOAD --- 519,525 ---- flush_cached_frames (); registers_changed (); ! energize_wait (&w); #ifdef SIGTRAP_STOP_AFTER_LOAD =================================================================== *** 1.17 1992/09/26 09:06:10 --- inftarg.c 1992/09/28 21:34:12 *************** *** 123,128 **** --- 123,129 ---- attach (pid); inferior_pid = pid; + energize_new_process(); push_target (&child_ops); #endif /* ATTACH_DETACH */ } =================================================================== *** 1.57 1992/09/29 05:07:14 --- main.c 1992/09/28 21:34:13 *************** *** 441,446 **** --- 441,447 ---- char *corearg = NULL; char *cdarg = NULL; char *ttyarg = NULL; + char *energize_id = NULL; /* Pointers to all arguments of +command option. */ char **cmdarg; *************** *** 539,544 **** --- 540,546 ---- {"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 *************** *** 571,576 **** --- 573,581 ---- case 11: cdarg = optarg; break; + case 12: + energize_id = optarg; + break; case 's': symarg = optarg; break; *************** *** 611,617 **** ADDITIONAL_OPTION_CASES #endif case '?': ! fprintf (stderr, "Use `%s +help' for a complete list of options.\n", argv[0]); exit (1); --- 616,622 ---- ADDITIONAL_OPTION_CASES #endif case '?': ! fprintf_filtered (stderr, "Use `%s +help' for a complete list of options.\n", argv[0]); exit (1); *************** *** 668,674 **** corearg = argv[optind]; break; case 3: ! fprintf (stderr, "Excess command line arguments ignored. (%s%s)\n", argv[optind], (optind == argc - 1) ? "" : " ..."); break; --- 673,679 ---- corearg = argv[optind]; break; case 3: ! fprintf_filtered (stderr, "Excess command line arguments ignored. (%s%s)\n", argv[optind], (optind == argc - 1) ? "" : " ..."); break; *************** *** 679,684 **** --- 684,692 ---- /* Run the init function of each source file */ + /* Must call this first to setup tty */ + energize_initialize (energize_id, execarg); + initialize_cmd_lists (); /* This needs to be done first */ initialize_all_files (); initialize_main (); /* But that omits this file! Do it now */ *************** *** 853,859 **** if (!setjmp (to_top_level)) { do_cleanups (ALL_CLEANUPS); /* Do complete cleanup */ ! command_loop (); quit_command ((char *)0, instream == stdin); } } --- 861,870 ---- if (!setjmp (to_top_level)) { do_cleanups (ALL_CLEANUPS); /* Do complete cleanup */ ! if (energize) ! energize_main_loop(); ! else ! command_loop (); quit_command ((char *)0, instream == stdin); } } *************** *** 915,921 **** 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). */ --- 926,932 ---- else if (c->function.cfunc == NO_FUNCTION) error ("That is not a command, just a help topic."); else ! energize_call_command (c, arg, from_tty & caution); } /* Tell the user if the language has changed (except first time). */ *************** *** 1317,1323 **** #else signal (STOP_SIGNAL, stop_sig); #endif ! printf ("%s", prompt); fflush (stdout); /* Forget about any previous command -- null line now will do nothing. */ --- 1328,1334 ---- #else signal (STOP_SIGNAL, stop_sig); #endif ! printf_filtered ("%s", prompt); fflush (stdout); /* Forget about any previous command -- null line now will do nothing. */ *************** *** 1463,1469 **** if (expanded) { /* Print the changes. */ ! printf ("%s\n", history_value); /* If there was an error, call this function again. */ if (expanded < 0) --- 1474,1480 ---- if (expanded) { /* Print the changes. */ ! printf_filtered ("%s\n", history_value); /* If there was an error, call this function again. */ if (expanded < 0) *************** *** 1570,1576 **** while (1) { dont_repeat (); ! p = command_line_input ((char *) NULL, instream == stdin); if (p == NULL) /* Treat end of file like "end". */ break; --- 1581,1587 ---- while (1) { dont_repeat (); ! p = energize_command_line_input ((char *) NULL, instream == stdin); if (p == NULL) /* Treat end of file like "end". */ break; *************** *** 1661,1667 **** char *arg; int from_tty; { ! printf ("\"info\" must be followed by the name of an info command.\n"); help_list (infolist, "info ", -1, stdout); } --- 1672,1678 ---- char *arg; int from_tty; { ! printf_filtered ("\"info\" must be followed by the name of an info command.\n"); help_list (infolist, "info ", -1, stdout); } *************** *** 1777,1783 **** if (from_tty) { ! printf ("Type commands for definition of \"%s\".\n\ End with a line saying just \"end\".\n", comname); fflush (stdout); } --- 1788,1794 ---- if (from_tty) { ! printf_filtered ("Type commands for definition of \"%s\".\n\ End with a line saying just \"end\".\n", comname); fflush (stdout); } *************** *** 1810,1816 **** error ("Command \"%s\" is built-in.", comname); if (from_tty) ! printf ("Type documentation for \"%s\".\n\ End with a line saying just \"end\".\n", comname); doclines = read_command_lines (); --- 1821,1827 ---- error ("Command \"%s\" is built-in.", comname); if (from_tty) ! printf_filtered ("Type documentation for \"%s\".\n\ End with a line saying just \"end\".\n", comname); doclines = read_command_lines (); *************** *** 1841,1847 **** static void print_gnu_advertisement() { ! printf ("\ GDB is free software and you are welcome to distribute copies of it\n\ under certain conditions; type \"show copying\" to see the conditions.\n\ There is absolutely no warranty for GDB; type \"show warranty\" for details.\n\ --- 1852,1858 ---- static void print_gnu_advertisement() { ! printf_filtered ("\ GDB is free software and you are welcome to distribute copies of it\n\ under certain conditions; type \"show copying\" to see the conditions.\n\ There is absolutely no warranty for GDB; type \"show warranty\" for details.\n\ *************** *** 1874,1880 **** void print_prompt () { ! printf ("%s", prompt); fflush (stdout); } --- 1885,1891 ---- void print_prompt () { ! printf_filtered ("%s", prompt); fflush (stdout); } *************** *** 1920,1929 **** getcwd (gdb_dirbuf, sizeof (gdb_dirbuf)); if (strcmp (gdb_dirbuf, current_directory)) ! printf ("Working directory %s\n (canonically %s).\n", current_directory, gdb_dirbuf); else ! printf ("Working directory %s.\n", current_directory); } static void --- 1931,1940 ---- getcwd (gdb_dirbuf, sizeof (gdb_dirbuf)); if (strcmp (gdb_dirbuf, current_directory)) ! printf_filtered ("Working directory %s\n (canonically %s).\n", current_directory, gdb_dirbuf); else ! printf_filtered ("Working directory %s.\n", current_directory); } static void *************** *** 2160,2166 **** char *args; int from_tty; { ! printf ("\"set history\" must be followed by the name of a history subcommand.\n"); help_list (sethistlist, "set history ", -1, stdout); } --- 2171,2177 ---- char *args; int from_tty; { ! printf_filtered ("\"set history\" must be followed by the name of a history subcommand.\n"); help_list (sethistlist, "set history ", -1, stdout); } =================================================================== *** 1.33 1992/09/29 05:07:19 --- printcmd.c 1992/09/28 21:34:13 *************** *** 778,792 **** { int histindex = record_latest_value (val); if (inspect) ! printf ("\031(gdb-makebuffer \"%s\" %d '(\"", exp, histindex); else if (histindex >= 0) printf_filtered ("$%d = ", histindex); print_formatted (val, format, fmt.size); printf_filtered ("\n"); if (inspect) ! printf("\") )\030"); } if (cleanup) --- 778,802 ---- { int histindex = record_latest_value (val); + if (energize) + { + char buf[20]; + + sprintf(buf, "$%d", histindex); + energize_start_variable_annotation(buf, NULL, VALUE_TYPE(val), + VALUE_ADDRESS(val), ""); + } + if (inspect) ! printf_filtered ("\031(gdb-makebuffer \"%s\" %d '(\"", exp, histindex); else if (histindex >= 0) printf_filtered ("$%d = ", histindex); print_formatted (val, format, fmt.size); + energize_end_variable_annotation(); printf_filtered ("\n"); if (inspect) ! printf_filtered("\") )\030"); } if (cleanup) *************** *** 890,896 **** { if (is_a_field_of_this) { ! printf ("Symbol \"%s\" is a field of the local class variable `this'\n", exp); return; } --- 900,906 ---- { if (is_a_field_of_this) { ! printf_filtered ("Symbol \"%s\" is a field of the local class variable `this'\n", exp); return; } *************** *** 897,903 **** msymbol = lookup_minimal_symbol (exp, (struct objfile *) NULL); if (msymbol != NULL) ! printf ("Symbol \"%s\" is at %s in a file compiled without debugging.\n", exp, local_hex_string(msymbol -> address)); else error ("No symbol \"%s\" in current context.", exp); --- 907,913 ---- msymbol = lookup_minimal_symbol (exp, (struct objfile *) NULL); if (msymbol != NULL) ! printf_filtered ("Symbol \"%s\" is at %s in a file compiled without debugging.\n", exp, local_hex_string(msymbol -> address)); else error ("No symbol \"%s\" in current context.", exp); *************** *** 904,910 **** return; } ! printf ("Symbol \"%s\" is ", SYMBOL_NAME (sym)); val = SYMBOL_VALUE (sym); basereg = SYMBOL_BASEREG (sym); --- 914,920 ---- return; } ! printf_filtered ("Symbol \"%s\" is ", SYMBOL_NAME (sym)); val = SYMBOL_VALUE (sym); basereg = SYMBOL_BASEREG (sym); *************** *** 912,945 **** { case LOC_CONST: case LOC_CONST_BYTES: ! printf ("constant"); break; case LOC_LABEL: ! printf ("a label at address %s", local_hex_string(SYMBOL_VALUE_ADDRESS (sym))); break; case LOC_REGISTER: ! printf ("a variable in register %s", reg_names[val]); break; case LOC_STATIC: ! printf ("static storage at address %s", local_hex_string(SYMBOL_VALUE_ADDRESS (sym))); break; case LOC_REGPARM: ! printf ("an argument in register %s", reg_names[val]); break; case LOC_ARG: if (SYMBOL_BASEREG_VALID (sym)) { ! printf ("an argument at offset %ld from register %s", val, reg_names[basereg]); } else { ! printf ("an argument at offset %ld", val); } break; --- 922,955 ---- { case LOC_CONST: case LOC_CONST_BYTES: ! printf_filtered ("constant"); break; case LOC_LABEL: ! printf_filtered ("a label at address %s", local_hex_string(SYMBOL_VALUE_ADDRESS (sym))); break; case LOC_REGISTER: ! printf_filtered ("a variable in register %s", reg_names[val]); break; case LOC_STATIC: ! printf_filtered ("static storage at address %s", local_hex_string(SYMBOL_VALUE_ADDRESS (sym))); break; case LOC_REGPARM: ! printf_filtered ("an argument in register %s", reg_names[val]); break; case LOC_ARG: if (SYMBOL_BASEREG_VALID (sym)) { ! printf_filtered ("an argument at offset %ld from register %s", val, reg_names[basereg]); } else { ! printf_filtered ("an argument at offset %ld", val); } break; *************** *** 946,957 **** case LOC_LOCAL_ARG: if (SYMBOL_BASEREG_VALID (sym)) { ! printf ("an argument at offset %ld from register %s", val, reg_names[basereg]); } else { ! printf ("an argument at frame offset %ld", val); } break; --- 956,967 ---- case LOC_LOCAL_ARG: if (SYMBOL_BASEREG_VALID (sym)) { ! printf_filtered ("an argument at offset %ld from register %s", val, reg_names[basereg]); } else { ! printf_filtered ("an argument at frame offset %ld", val); } break; *************** *** 958,990 **** case LOC_LOCAL: if (SYMBOL_BASEREG_VALID (sym)) { ! printf ("a local variable at offset %ld from register %s", val, reg_names[basereg]); } else { ! printf ("a local variable at frame offset %ld", val); } break; case LOC_REF_ARG: ! printf ("a reference argument at offset %ld", val); break; case LOC_TYPEDEF: ! printf ("a typedef"); break; case LOC_BLOCK: ! printf ("a function at address %s", local_hex_string(BLOCK_START (SYMBOL_BLOCK_VALUE (sym)))); break; default: ! printf ("of unknown (botched) type"); break; } ! printf (".\n"); } static void --- 968,1000 ---- case LOC_LOCAL: if (SYMBOL_BASEREG_VALID (sym)) { ! printf_filtered ("a local variable at offset %ld from register %s", val, reg_names[basereg]); } else { ! printf_filtered ("a local variable at frame offset %ld", val); } break; case LOC_REF_ARG: ! printf_filtered ("a reference argument at offset %ld", val); break; case LOC_TYPEDEF: ! printf_filtered ("a typedef"); break; case LOC_BLOCK: ! printf_filtered ("a function at address %s", local_hex_string(BLOCK_START (SYMBOL_BLOCK_VALUE (sym)))); break; default: ! printf_filtered ("of unknown (botched) type"); break; } ! printf_filtered (".\n"); } static void *************** *** 1419,1425 **** d->status = disabled; return; } ! printf ("No display number %d.\n", num); } void --- 1429,1435 ---- d->status = disabled; return; } ! printf_filtered ("No display number %d.\n", num); } void *************** *** 1428,1434 **** if (current_display_number >= 0) { disable_display (current_display_number); ! fprintf (stderr, "Disabling display %d to avoid infinite recursion.\n", current_display_number); } current_display_number = -1; --- 1438,1444 ---- if (current_display_number >= 0) { disable_display (current_display_number); ! fprintf_filtered (stderr, "Disabling display %d to avoid infinite recursion.\n", current_display_number); } current_display_number = -1; *************** *** 1442,1448 **** register struct display *d; if (!display_chain) ! printf ("There are no auto-display expressions now.\n"); else printf_filtered ("Auto-display expressions now in effect:\n\ Num Enb Expression\n"); --- 1452,1458 ---- register struct display *d; if (!display_chain) ! printf_filtered ("There are no auto-display expressions now.\n"); else printf_filtered ("Auto-display expressions now in effect:\n\ Num Enb Expression\n"); *************** *** 1495,1501 **** d->status = enabled; goto win; } ! printf ("No display number %d.\n", num); win: p = p1; while (*p == ' ' || *p == '\t') --- 1505,1511 ---- d->status = enabled; goto win; } ! printf_filtered ("No display number %d.\n", num); win: p = p1; while (*p == ' ' || *p == '\t') *************** *** 1652,1662 **** --- 1662,1680 ---- standard indentation here is 4 spaces, and val_print indents 2 for each recurse. */ val = read_var_value (sym, FRAME_INFO_ID (fi)); + + energize_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); + + energize_end_variable_annotation(); + first = 0; } =================================================================== *** 1.35 1992/09/18 09:20:00 --- stack.c 1992/09/28 21:34:14 *************** *** 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 (energize) ! energize_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 (energize) ! energize_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 (!energize) ! 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 (energize) ! energize_annotate_function(funname, DMGL_ANSI | DMGL_PARAMS, ! selected_frame_level); ! else ! fputs_demangled (funname, stdout, DMGL_ANSI | DMGL_PARAMS); } wrap_here (" "); if (sal.symtab) =================================================================== *** 1.59 1992/09/29 05:07:26 --- symfile.c 1992/09/28 21:34:14 *************** *** 614,619 **** --- 614,621 ---- fflush (stdout); } + energize_symbol_file(objfile); + return (objfile); } *************** *** 646,652 **** current_source_line = 0; if (from_tty) { ! printf ("No symbol file now.\n"); } } else --- 648,654 ---- current_source_line = 0; if (from_tty) { ! printf_filtered ("No symbol file now.\n"); } } else *************** *** 1164,1170 **** return; clear_symtab_users_done = clear_symtab_users_queued; ! printf ("Resetting debugger state after updating old symbol tables\n"); /* Someday, we should do better than this, by only blowing away the things that really need to be blown. */ --- 1166,1172 ---- return; clear_symtab_users_done = clear_symtab_users_queued; ! printf_filtered ("Resetting debugger state after updating old symbol tables\n"); /* Someday, we should do better than this, by only blowing away the things that really need to be blown. */ =================================================================== *** 1.63 1992/09/26 05:34:06 --- utils.c 1992/09/28 21:34:15 *************** *** 700,720 **** fflush (stdout); 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') --- 700,731 ---- fflush (stdout); va_start (args); ctlstr = va_arg (args, char *); + energize_query (ctlstr, args); vfprintf_filtered (stdout, ctlstr, args); printf_filtered ("(y or n) "); ! if (energize) ! { ! char *buf; ! ! buf = energize_command_line_input(0, 0); ! answer = buf ? *buf : 'Y'; ! energize_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') *************** *** 722,727 **** --- 733,739 ---- if (answer == 'N') return 0; printf_filtered ("Please answer y or n.\n"); + va_end (args); } } *************** *** 1000,1005 **** --- 1012,1023 ---- if (linebuffer == 0) return; + if (energize) + { + energize_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)) =================================================================== *** 1.55 1992/09/29 05:07:34 --- valprint.c 1992/09/28 21:34:15 *************** *** 384,390 **** VALUE_CONTENTS (val) + typelen * i, VALUE_ADDRESS (val) + typelen * i, stream, format, 1, 0, pretty); ! fprintf (stream, " <repeats %u times>", reps); i = rep1 - 1; things_printed += REPEAT_COUNT_THRESHOLD; } --- 384,390 ---- VALUE_CONTENTS (val) + typelen * i, VALUE_ADDRESS (val) + typelen * i, stream, format, 1, 0, pretty); ! fprintf_filtered (stream, " <repeats %u times>", reps); i = rep1 - 1; things_printed += REPEAT_COUNT_THRESHOLD; } *************** *** 488,493 **** --- 488,494 ---- struct type **dont_print; { int i, len, n_baseclasses; + char expr_tag[100]; /* Energize */ check_stub_type (type); *************** *** 552,557 **** --- 553,565 ---- fprint_symbol (stream, TYPE_FIELD_NAME (type, i)); fputs_filtered (" = ", stream); } + + sprintf(expr_tag, ".%s", TYPE_FIELD_NAME(type, i)); + + energize_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; *************** *** 570,575 **** --- 578,584 ---- valaddr + TYPE_FIELD_BITPOS (type, i) / 8, 0, stream, format, 0, recurse + 1, pretty); } + energize_end_variable_annotation(); } if (pretty) { *************** *** 804,809 **** --- 813,819 ---- unsigned int rep1; /* Number of repetitions we have detected so far. */ unsigned int reps; + char expr_tag[100]; /* Energize */ if (i != 0) if (arrayprint) *************** *** 825,830 **** --- 835,845 ---- ++rep1; } + sprintf(expr_tag, "[%d]", i); + energize_start_variable_annotation(expr_tag, NULL, + elttype, + (CORE_ADDR) (valaddr + i * eltlen), + ""); if (reps > REPEAT_COUNT_THRESHOLD) { val_print (elttype, valaddr + i * eltlen, *************** Sun Oct 24 23:48:55 1993*** 841,846 **** --- 856,862 ---- recurse + 1, pretty); things_printed++; } + energize_end_variable_annotation(); } if (i < len) fprintf_filtered (stream, "..."); *************** *** 910,916 **** { fprintf_filtered (stream, "&"); type_print_varspec_prefix (TYPE_FN_FIELD_TYPE (f, j), stream, 0, 0); ! fprintf (stream, kind); if (TYPE_FN_FIELD_PHYSNAME (f, j)[0] == '_' && TYPE_FN_FIELD_PHYSNAME (f, j)[1] == CPLUS_MARKER) type_print_method_args --- 926,932 ---- { fprintf_filtered (stream, "&"); type_print_varspec_prefix (TYPE_FN_FIELD_TYPE (f, j), stream, 0, 0); ! fprintf_filtered (stream, kind); if (TYPE_FN_FIELD_PHYSNAME (f, j)[0] == '_' && TYPE_FN_FIELD_PHYSNAME (f, j)[1] == CPLUS_MARKER) type_print_method_args *************** *** 1528,1534 **** case TYPE_CODE_METHOD: if (passed_a_ptr) ! fprintf (stream, "("); type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, 0, 0); if (passed_a_ptr) --- 1544,1550 ---- case TYPE_CODE_METHOD: if (passed_a_ptr) ! fprintf_filtered (stream, "("); type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, 0, 0); if (passed_a_ptr) *************** *** 1907,1913 **** if (TYPE_TARGET_TYPE (TYPE_FN_FIELD_TYPE (f, j)) == 0) { /* Keep GDB from crashing here. */ ! fprintf (stream, "<undefined type> %s;\n", TYPE_FN_FIELD_PHYSNAME (f, j)); break; } --- 1923,1929 ---- if (TYPE_TARGET_TYPE (TYPE_FN_FIELD_TYPE (f, j)) == 0) { /* Keep GDB from crashing here. */ ! fprintf_filtered (stream, "<undefined type> %s;\n", TYPE_FN_FIELD_PHYSNAME (f, j)); break; } *************** *** 2098,2104 **** char *arg; int from_tty; { ! printf ( "\"set print\" must be followed by the name of a print subcommand.\n"); help_list (setprintlist, "set print ", -1, stdout); } --- 2114,2120 ---- char *arg; int from_tty; { ! printf_filtered ( "\"set print\" must be followed by the name of a print subcommand.\n"); help_list (setprintlist, "set print ", -1, stdout); } =================================================================== *** 1.5 1992/09/26 08:07:45 --- amix.mh 1992/09/28 21:34:15 *************** *** 22,24 **** --- 22,38 ---- # SVR4 puts the BSD compatible install in /usr/ucb. INSTALL = /usr/ucb/install -c + + # These are the libs that are needed for the Energize 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. + ENERGIZE_LIB = energize/libconn.a + ENERGIZE_LIBS = ${ENERGIZE_LIB} -L/usr/lib -lm -lnet -lresolv -lform \ + -lsocket -lc /usr/ucblib/libucb.a -lnsl + + # These are the libs that are needed for the Energize 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. + ENERGIZE_LIB = energize/libconn.a + ENERGIZE_LIBS = ${ENERGIZE_LIB} -L/usr/lib -lm -lnet -lresolv -lform \ + -lsocket -lc /usr/ucblib/libucb.a -lnsl =================================================================== *** 1.5 1992/09/26 08:08:14 --- ncr3000.mh 1992/09/28 21:34:16 *************** *** 38,40 **** --- 38,59 ---- # 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 Energize 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. + XM_CLIBS = -L/usr/lib -lm -lnet -lresolv -lform -lsocket -lnsl -lc + + # These are the libs that are needed for the Energize 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. + ENERGIZE_LIB = energize/libconn.a + ENERGIZE_LIBS = ${ENERGIZE_LIB} -L/usr/lib -lm -lnet -lresolv -lform \ + -lsocket -lc /usr/ucblib/libucb.a -lnsl + + # These are the libs that are needed for the Energize 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. + ENERGIZE_LIB = energize/libconn.a + ENERGIZE_LIBS = ${ENERGIZE_LIB} -L/usr/lib -lm -lnet -lresolv -lform \ + -lsocket -lc /usr/ucblib/libucb.a -lnsl