binutils-gdb/gdb/cadillac-patches

973 lines
26 KiB
Plaintext
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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/.Sanitize,v
retrieving revision 2.55
diff -c -r2.55 .Sanitize
*** 2.55 1992/06/23 05:03:32
--- .Sanitize 1992/06/23 05:03:51
***************
*** 53,58 ****
--- 53,59 ----
buildsym.c
buildsym.h
c-exp.y
+ cadillac.c
call-cmds.h
coffread.c
command.c
***************
*** 70,75 ****
--- 71,77 ----
cplus-dem.c
createtags
dbxread.c
+ deblib
defs.h
demangle.h
depend
===================================================================
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 config/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