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.gdb.bug Subject: GDB: support for vanilla System V (part 2 of 5) Message-ID: <8811301700.AA08196@uunet.UU.NET> Date: 1 Dec 88 05:20:41 GMT Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 630 (Sorry if you've seen this before but I sent it to bug-gnu-emacs not realising that bug-gdb existed) 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 2 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:18:52 CST 1988 # Contents: patch#1 echo x - patch#1 sed 's/^@//' > "patch#1" <<'@//E*O*F patch#1//' *** ../gdb.dist/Makefile Sun Sep 4 02:06:58 1988 --- Makefile Fri Nov 18 10:07:55 1988 *************** *** 23,28 # and tell GDB to use BSD executable file format. # You also need to add -lGNU to CLIBS, and perhaps CC = gcc. # -I. for "#include" CFLAGS = -g -I. # NOTE!!! -O may FAIL TO WORK! See initialize.h for some weird hacks. --- 23,30 ----- # and tell GDB to use BSD executable file format. # You also need to add -lGNU to CLIBS, and perhaps CC = gcc. + SHELL = /bin/sh + # -I. for "#include " CFLAGS = -g -I. # NOTE!!! -O may FAIL TO WORK! See initialize.h for some weird hacks. *************** *** 26,31 # -I. for "#include " CFLAGS = -g -I. # NOTE!!! -O may FAIL TO WORK! See initialize.h for some weird hacks. # define this to be "obstack.o" if you don't have the obstack library installed # you must at the same time define OBSTACK1 as "obstack.o" --- 28,34 ----- # -I. for "#include " CFLAGS = -g -I. # NOTE!!! -O may FAIL TO WORK! See initialize.h for some weird hacks. + LFLAGS = .SUFFIXES: .SUFFIXES: .o .ln .c .y .l .s *************** *** 27,32 CFLAGS = -g -I. # NOTE!!! -O may FAIL TO WORK! See initialize.h for some weird hacks. # define this to be "obstack.o" if you don't have the obstack library installed # you must at the same time define OBSTACK1 as "obstack.o" # so that the dependencies work right. --- 30,41 ----- # NOTE!!! -O may FAIL TO WORK! See initialize.h for some weird hacks. LFLAGS = + .SUFFIXES: + .SUFFIXES: .o .ln .c .y .l .s + + .c.ln: + lint -c $(CFLAGS) $(LFLAGS) $< + # define this to be "obstack.o" if you don't have the obstack library installed # you must at the same time define OBSTACK1 as "obstack.o" # so that the dependencies work right. *************** *** 33,39 OBSTACK = obstack.o OBSTACK1 = obstack.o ! CLIBS = $(OBSTACK) STARTOBS = main.o firstfile.o --- 42,48 ----- OBSTACK = obstack.o OBSTACK1 = obstack.o ! OBSTACKLNT = obstack.ln CPP = $(CC) -E *************** *** 35,40 CLIBS = $(OBSTACK) STARTOBS = main.o firstfile.o OBS = blockframe.o breakpoint.o findvar.o stack.o source.o \ --- 44,55 ----- OBSTACKLNT = obstack.ln + CPP = $(CC) -E + + CLIBS = $(OBSTACK) -lPW + + LNTLIBS = $(OBSTACKLNT) -lPW + STARTOBS = main.o firstfile.o STARTLNT = main.ln firstfile.ln *************** *** 37,42 STARTOBS = main.o firstfile.o OBS = blockframe.o breakpoint.o findvar.o stack.o source.o \ values.o eval.o valops.o valarith.o valprint.o printcmd.o \ symtab.o symmisc.o coffread.o dbxread.o infcmd.o infrun.o remote.o --- 52,59 ----- STARTOBS = main.o firstfile.o + STARTLNT = main.ln firstfile.ln + OBS = blockframe.o breakpoint.o findvar.o stack.o source.o \ values.o eval.o valops.o valarith.o valprint.o printcmd.o \ symtab.o symmisc.o coffread.o dbxread.o infcmd.o infrun.o remote.o *************** *** 41,46 values.o eval.o valops.o valarith.o valprint.o printcmd.o \ symtab.o symmisc.o coffread.o dbxread.o infcmd.o infrun.o remote.o TSOBS = core.o inflow.o NTSOBS = standalone.o --- 58,67 ----- values.o eval.o valops.o valarith.o valprint.o printcmd.o \ symtab.o symmisc.o coffread.o dbxread.o infcmd.o infrun.o remote.o + LNT = blockframe.ln breakpoint.ln findvar.ln stack.ln source.ln \ + values.ln eval.ln valops.ln valarith.ln valprint.ln printcmd.ln \ + symtab.ln symmisc.ln coffread.ln dbxread.ln infcmd.ln infrun.ln remote.ln + TSOBS = core.o inflow.o TSLNT = core.ln inflow.ln *************** *** 42,47 symtab.o symmisc.o coffread.o dbxread.o infcmd.o infrun.o remote.o TSOBS = core.o inflow.o NTSOBS = standalone.o --- 63,69 ----- symtab.ln symmisc.ln coffread.ln dbxread.ln infcmd.ln infrun.ln remote.ln TSOBS = core.o inflow.o + TSLNT = core.ln inflow.ln NTSOBS = standalone.o NTSLNT = standalone.ln *************** *** 44,49 TSOBS = core.o inflow.o NTSOBS = standalone.o ENDOBS = lastfile.o command.o utils.o expread.o expprint.o pinsn.o \ environ.o version.o --- 66,72 ----- TSLNT = core.ln inflow.ln NTSOBS = standalone.o + NTSLNT = standalone.ln ENDOBS = lastfile.o command.o utils.o expread.o expprint.o pinsn.o \ *************** *** 45,50 NTSOBS = standalone.o ENDOBS = lastfile.o command.o utils.o expread.o expprint.o pinsn.o \ environ.o version.o --- 68,74 ----- NTSOBS = standalone.o NTSLNT = standalone.ln + ENDOBS = lastfile.o command.o utils.o expread.o expprint.o pinsn.o \ environ.o version.o alloca.o sysdep.o *************** *** 46,52 NTSOBS = standalone.o ENDOBS = lastfile.o command.o utils.o expread.o expprint.o pinsn.o \ ! environ.o version.o TSSTART = /lib/crt0.o --- 70,76 ----- ENDOBS = lastfile.o command.o utils.o expread.o expprint.o pinsn.o \ ! environ.o version.o alloca.o sysdep.o ENDLNT = lastfile.ln command.ln utils.ln expread.ln expprint.ln pinsn.ln \ environ.ln version.ln sysdep.ln *************** *** 48,53 ENDOBS = lastfile.o command.o utils.o expread.o expprint.o pinsn.o \ environ.o version.o TSSTART = /lib/crt0.o NTSSTART = kdb-start.o --- 72,80 ----- ENDOBS = lastfile.o command.o utils.o expread.o expprint.o pinsn.o \ environ.o version.o alloca.o sysdep.o + ENDLNT = lastfile.ln command.ln utils.ln expread.ln expprint.ln pinsn.ln \ + environ.ln version.ln sysdep.ln + TSSTART = /lib/crt0.o NTSSTART = kdb-start.o *************** *** 53,59 NTSSTART = kdb-start.o gdb : $(STARTOBS) $(OBS) $(TSOBS) $(ENDOBS) $(OBSTACK1) ! $(CC) $(LDFLAGS) -o gdb $(STARTOBS) $(OBS) $(TSOBS) $(ENDOBS) $(CLIBS) xgdb : $(STARTOBS) $(OBS) $(TSOBS) xgdb.o $(ENDOBS) $(OBSTACK1) $(CC) $(LDFLAGS) -o xgdb $(STARTOBS) $(OBS) $(TSOBS) xgdb.o $(ENDOBS) \ --- 80,86 ----- NTSSTART = kdb-start.o gdb : $(STARTOBS) $(OBS) $(TSOBS) $(ENDOBS) $(OBSTACK1) ! $(CC) $(LDFLAGS) -o gdb $(STARTOBS) $(OBS) $(TSOBS) $(ENDOBS) $(CLIBS) $(OBSTACKSRC) lint: $(STARTLNT) $(LNT) $(TSLNT) $(ENDLNT) $(OBSTACKLNT) lint $(CFLAGS) $(LFLAGS) $(STARTLNT) $(LNT) $(TSLNT) $(ENDLNT) $(LNTLIBS) *************** *** 55,60 gdb : $(STARTOBS) $(OBS) $(TSOBS) $(ENDOBS) $(OBSTACK1) $(CC) $(LDFLAGS) -o gdb $(STARTOBS) $(OBS) $(TSOBS) $(ENDOBS) $(CLIBS) xgdb : $(STARTOBS) $(OBS) $(TSOBS) xgdb.o $(ENDOBS) $(OBSTACK1) $(CC) $(LDFLAGS) -o xgdb $(STARTOBS) $(OBS) $(TSOBS) xgdb.o $(ENDOBS) \ -lXaw -lXt -lX11 $(CLIBS) --- 82,90 ----- gdb : $(STARTOBS) $(OBS) $(TSOBS) $(ENDOBS) $(OBSTACK1) $(CC) $(LDFLAGS) -o gdb $(STARTOBS) $(OBS) $(TSOBS) $(ENDOBS) $(CLIBS) $(OBSTACKSRC) + lint: $(STARTLNT) $(LNT) $(TSLNT) $(ENDLNT) $(OBSTACKLNT) + lint $(CFLAGS) $(LFLAGS) $(STARTLNT) $(LNT) $(TSLNT) $(ENDLNT) $(LNTLIBS) + xgdb : $(STARTOBS) $(OBS) $(TSOBS) xgdb.o $(ENDOBS) $(OBSTACK1) $(CC) $(LDFLAGS) -o xgdb $(STARTOBS) $(OBS) $(TSOBS) xgdb.o $(ENDOBS) \ -lXaw -lXt -lX11 $(CLIBS) *************** *** 62,75 kdb : $(NTSSTART) $(STARTOBS) $(OBS) $(NTSOBS) $(ENDOBS) $(OBSTACK1) ld -o kdb $(NTSSTART) $(STARTOBS) $(OBS) $(NTSOBS) $(ENDOBS) -lc $(CLIBS) ! blockframe.o : blockframe.c defs.h initialize.h param.h symtab.h frame.h ! breakpoint.o : breakpoint.c defs.h initialize.h param.h symtab.h frame.h ! command.o : command.c command.h ! coffread.o : coffread.c defs.h initialize.h param.h symtab.h ! core.o : core.c defs.h initialize.h param.h ! dbxread.o : dbxread.c defs.h initialize.h param.h symtab.h ! environ.o : environ.c environ.h ! expprint.o : expprint.c defs.h symtab.h expression.h expread.tab.c : expread.y @echo 'Expect 96 shift/reduce conflicts.' yacc expread.y --- 92,117 ----- kdb : $(NTSSTART) $(STARTOBS) $(OBS) $(NTSOBS) $(ENDOBS) $(OBSTACK1) ld -o kdb $(NTSSTART) $(STARTOBS) $(OBS) $(NTSOBS) $(ENDOBS) -lc $(CLIBS) ! alloca.o : alloca.s config.h ! cp alloca.s allocatem.c ! $(CPP) allocatem.c | \ ! sed -e 's///' -e 's/^#.*//' | \ ! sed -n -e '/^..*$$/p' > allocatem.s ! -rm -f alloca.o ! cc -c allocatem.s ! mv allocatem.o alloca.o ! rm allocatem.s allocatem.c ! blockframe.o blockframe.ln : blockframe.c defs.h initialize.h param.h\ ! symtab.h frame.h config.h ! breakpoint.o breakpoint.ln : breakpoint.c defs.h initialize.h param.h\ ! symtab.h frame.h config.h ! command.o command.ln : command.c command.h config.h ! coffread.o coffread.ln : coffread.c defs.h initialize.h param.h symtab.h\ ! config.h ! core.o core.ln : core.c defs.h initialize.h param.h config.h ! dbxread.o dbxread.ln : dbxread.c defs.h initialize.h param.h symtab.h config.h ! environ.o environ.ln : environ.c environ.h config.h ! expprint.o expprint.ln : expprint.c defs.h symtab.h expression.h config.h expread.tab.c : expread.y @echo 'Expect 96 shift/reduce conflicts.' yacc expread.y *************** *** 74,80 @echo 'Expect 96 shift/reduce conflicts.' yacc expread.y mv y.tab.c expread.tab.c ! expread.o : expread.tab.c defs.h param.h symtab.h frame.h expression.h $(CC) -c ${CFLAGS} expread.tab.c mv expread.tab.o expread.o eval.o : eval.c defs.h initialize.h symtab.h value.h expression.h --- 116,123 ----- @echo 'Expect 96 shift/reduce conflicts.' yacc expread.y mv y.tab.c expread.tab.c ! expread.o expread.ln : expread.tab.c defs.h param.h symtab.h frame.h\ ! expression.h config.h $(CC) -c ${CFLAGS} expread.tab.c mv expread.tab.o expread.o eval.o eval.ln : eval.c defs.h initialize.h symtab.h value.h expression.h\ *************** *** 77,91 expread.o : expread.tab.c defs.h param.h symtab.h frame.h expression.h $(CC) -c ${CFLAGS} expread.tab.c mv expread.tab.o expread.o ! eval.o : eval.c defs.h initialize.h symtab.h value.h expression.h ! findvar.o : findvar.c defs.h initialize.h param.h symtab.h frame.h value.h ! firstfile.o : firstfile.c initialize.h ! infcmd.o : infcmd.c defs.h initialize.h param.h symtab.h frame.h inferior.h environ.h value.h ! inflow.o : inflow.c defs.h initialize.h param.h frame.h inferior.h ! infrun.o : infrun.c defs.h initialize.h param.h symtab.h frame.h inferior.h wait.h ! kdb-start.o : kdb-start.c defs.h param.h ! lastfile.o : lastfile.c ! main.o : main.c defs.h command.h # pinsn.o depends on ALL the opcode printers # since we don't know which one is really being used. pinsn.o : pinsn.c defs.h param.h symtab.h \ --- 120,139 ----- expression.h config.h $(CC) -c ${CFLAGS} expread.tab.c mv expread.tab.o expread.o ! eval.o eval.ln : eval.c defs.h initialize.h symtab.h value.h expression.h\ ! config.h ! findvar.o findvar.ln : findvar.c defs.h initialize.h param.h symtab.h\ ! frame.h value.h config.h ! firstfile.o firstfile.ln : firstfile.c initialize.h config.h ! infcmd.o infcmd.ln : infcmd.c defs.h initialize.h param.h symtab.h frame.h\ ! inferior.h environ.h value.h config.h ! inflow.o inflow.ln : inflow.c defs.h initialize.h param.h frame.h inferior.h\ ! config.h ! infrun.o infrun.ln : infrun.c defs.h initialize.h param.h symtab.h frame.h\ ! inferior.h wait.h config.h ! kdb-start.o kdb-start.ln : kdb-start.c defs.h param.h config.h ! lastfile.o lastfile.ln : lastfile.c config.h ! main.o main.ln : main.c defs.h command.h config.h # pinsn.o depends on ALL the opcode printers # since we don't know which one is really being used. pinsn.o pinsn.ln : pinsn.c opcode.h defs.h param.h symtab.h config.h\ *************** *** 88,109 main.o : main.c defs.h command.h # pinsn.o depends on ALL the opcode printers # since we don't know which one is really being used. ! pinsn.o : pinsn.c defs.h param.h symtab.h \ ! vax-opcode.h vax-pinsn.c m68k-opcode.h m68k-pinsn.c ! printcmd.o : printcmd.c defs.h initialize.h param.h symtab.h value.h expression.h ! remote.o : remote.c defs.h initialize.h param.h frame.h inferior.h ! source.o : source.c defs.h initialize.h symtab.h ! stack.o : stack.c defs.h initialize.h param.h symtab.h frame.h ! standalone.o : standalone.c defs.h initialize.h param.h symtab.h frame.h inferior.h wait.h ! symmisc.o : symmisc.c defs.h initialize.h symtab.h ! symtab.o : symtab.c defs.h initialize.h param.h symtab.h ! utils.o : utils.c defs.h ! valarith.o : valarith.c defs.h initialize.h param.h symtab.h value.h expression.h ! valops.o : valops.c defs.h initialize.h param.h symtab.h value.h ! valprint.o : valprint.c defs.h initialize.h param.h symtab.h value.h ! values.o : values.c defs.h initialize.h param.h symtab.h value.h ! version.o : version.c ! xgdb.o : xgdb.c defs.h initialize.h param.h symtab.h frame.h $(CC) -c $(CFLAGS) xgdb.c -o $@ obstack.o : obstack.c --- 136,165 ----- main.o main.ln : main.c defs.h command.h config.h # pinsn.o depends on ALL the opcode printers # since we don't know which one is really being used. ! pinsn.o pinsn.ln : pinsn.c opcode.h defs.h param.h symtab.h config.h\ ! vax-opcode.h vax-pinsn.c m68k-opcode.h m68k-pinsn.c ! printcmd.o printcmd.ln : printcmd.c defs.h initialize.h param.h symtab.h\ ! value.h expression.h config.h ! remote.o remote.ln : remote.c defs.h initialize.h param.h frame.h inferior.h\ ! config.h ! source.o source.ln : source.c defs.h initialize.h symtab.h config.h ! stack.o stack.ln : stack.c defs.h initialize.h param.h symtab.h frame.h\ ! config.h ! standalone.o standalone.ln : standalone.c defs.h initialize.h param.h\ ! symtab.h frame.h inferior.h wait.h config.h ! symmisc.o symmisc.ln : symmisc.c defs.h initialize.h symtab.h config.h ! symtab.o symtab.ln : symtab.c defs.h initialize.h param.h symtab.h config.h ! utils.o utils.ln : utils.c defs.h config.h ! valarith.o valarith.ln : valarith.c defs.h initialize.h param.h symtab.h\ ! value.h expression.h config.h ! valops.o valops.ln : valops.c defs.h initialize.h param.h symtab.h value.h\ ! config.h ! valprint.o valprint.ln : valprint.c defs.h initialize.h param.h symtab.h\ ! value.h config.h ! values.o values.ln : values.c defs.h initialize.h param.h symtab.h value.h\ ! config.h ! version.o version.ln : version.c config.h ! xgdb.o xgdb.ln : xgdb.c defs.h initialize.h param.h symtab.h frame.h config.h $(CC) -c $(CFLAGS) xgdb.c -o $@ obstack.o obstack.ln : obstack.c config.h sysdep.o sysdep.ln : sysdep.c config.h *************** *** 105,109 version.o : version.c xgdb.o : xgdb.c defs.h initialize.h param.h symtab.h frame.h $(CC) -c $(CFLAGS) xgdb.c -o $@ ! ! obstack.o : obstack.c --- 161,165 ----- version.o version.ln : version.c config.h xgdb.o xgdb.ln : xgdb.c defs.h initialize.h param.h symtab.h frame.h config.h $(CC) -c $(CFLAGS) xgdb.c -o $@ ! obstack.o obstack.ln : obstack.c config.h ! sysdep.o sysdep.ln : sysdep.c config.h *** ../gdb.dist/config.gdb Fri Sep 2 03:21:50 1988 --- config.gdb Wed Nov 23 20:51:42 1988 *************** *** 20,25 initfile=m-${machine}init.h pinsnfile=${machine}-pinsn.c opcodefile=${machine}-opcode.h case $machine in hp9k320) --- 20,26 ----- initfile=m-${machine}init.h pinsnfile=${machine}-pinsn.c opcodefile=${machine}-opcode.h + configfile=${machine}-config.h # If no config file try a null config file for backward compatability if [ ! -r $configfile ] *************** *** 21,26 pinsnfile=${machine}-pinsn.c opcodefile=${machine}-opcode.h case $machine in hp9k320) initfile=m-sun3init.h --- 22,33 ----- opcodefile=${machine}-opcode.h configfile=${machine}-config.h + # If no config file try a null config file for backward compatability + if [ ! -r $configfile ] + then + touch $configfile + fi + case $machine in hp9k320) initfile=m-sun3init.h *************** *** 65,70 pinsnfile=ns32k-pinsn.c opcodefile=ns32k-opcode.h ;; test) paramfile=one initfile=two --- 72,82 ----- pinsnfile=ns32k-pinsn.c opcodefile=ns32k-opcode.h ;; + ns5) + pinsnfile=ns32k-pinsn.c + opcodefile=ns32k-opcode.h + ;; + test) paramfile=one initfile=two *************** *** 73,80 ;; esac ! files="$paramfile $initfile $pinsnfile $opcodefile" ! links="param.h m-init.h pinsn.c opcode.h" while [ -n "$files" ] do --- 85,92 ----- ;; esac ! files="$paramfile $initfile $pinsnfile $opcodefile $configfile" ! links="param.h m-init.h pinsn.c opcode.h config.h" while [ -n "$files" ] do *** ../gdb.dist/blockframe.c Fri Mar 25 17:01:18 1988 --- blockframe.c Wed Nov 16 01:02:48 1988 *************** *** 19,24 anyone else from sharing it farther. Help stamp out software hoarding! */ #include "defs.h" #include "initialize.h" #include "param.h" --- 19,25 ----- anyone else from sharing it farther. Help stamp out software hoarding! */ + #include "config.h" #include "defs.h" #include "initialize.h" #include "param.h" *************** *** 31,36 are treated as nonexistent. */ CORE_ADDR first_object_file_end; /* Address of innermost stack frame (contents of FP register) */ --- 32,39 ----- are treated as nonexistent. */ CORE_ADDR first_object_file_end; + + CORE_ADDR read_pc(); /* Address of innermost stack frame (contents of FP register) */ *** ../gdb.dist/breakpoint.c Thu Jun 9 19:43:13 1988 --- breakpoint.c Wed Nov 16 10:28:04 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" *************** *** 102,107 static void delete_breakpoint (); void clear_momentary_breakpoints (); void breakpoint_auto_delete (); /* condition N EXP -- set break condition of breakpoint N to EXP. */ --- 103,112 ----- static void delete_breakpoint (); void clear_momentary_breakpoints (); void breakpoint_auto_delete (); + struct block *block_for_pc(); + void free_command_lines(); + void execute_command(), free_all_values(), print_expression(); + void set_next_address(); /* condition N EXP -- set break condition of breakpoint N to EXP. */ @//E*O*F patch#1// chmod u=rw,g=r,o=r patch#1 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 <<\!!! 592 2373 18278 patch#1 !!! wc patch#1 | 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