Clean up deleted files.
This commit is contained in:
parent
1c061a0df3
commit
e6e5bff5d5
File diff suppressed because it is too large
Load Diff
|
@ -1,373 +0,0 @@
|
|||
# $Id: Makefile.dist,v 1.2 1993/08/02 17:40:51 mycroft Exp $
|
||||
|
||||
/* This file should be run through the C preprocessor by config.gdb
|
||||
to produce the Makefile. */
|
||||
|
||||
/* Define this to xgdb if you want to compile xgdb as well as gdb. */
|
||||
XGDB=
|
||||
/* Place to install binaries. */
|
||||
bindir=/usr/local/bin
|
||||
/* Place to install X binaries. */
|
||||
xbindir=$(bindir)
|
||||
|
||||
/* System V: If you compile gdb with a compiler which uses the coff
|
||||
encapsulation feature (this is a function of the compiler used, NOT
|
||||
of the m-?.h file selected by config.gdb), you must make sure that
|
||||
the GNU nm is the one that is used by munch. */
|
||||
|
||||
/* If you are compiling with GCC, make sure that either 1) You use the
|
||||
-traditional flag, or 2) You have the fixed include files where GCC
|
||||
can reach them. Otherwise the ioctl calls in inflow.c and readline.c
|
||||
will be incorrectly compiled. The "fixincludes" script in the gcc
|
||||
distribution will fix your include files up. */
|
||||
/* CC=gcc -traditional */
|
||||
CC=cc
|
||||
|
||||
/* It is also possible that you will need to add -I/usr/include/sys to the
|
||||
CFLAGS section if your system doesn't have fcntl.h in /usr/include (which
|
||||
is where it should be according to Posix). */
|
||||
|
||||
YACC=bison -y -v
|
||||
/* YACC=yacc */
|
||||
SHELL=/bin/sh
|
||||
MAKE=make
|
||||
|
||||
/* Set this up with gcc if you have gnu ld and the loader will print out
|
||||
line numbers for undefinded refs. */
|
||||
/* CC-LD=gcc -static */
|
||||
CC-LD=${CC}
|
||||
|
||||
/* If you are using the GNU C library, uncomment the following line. */
|
||||
/* HAVE_VPRINTF_DEFINE = -DHAVE_VPRINTF */
|
||||
|
||||
/* -I. for "#include <obstack.h>". Possibly regex.h also. */
|
||||
|
||||
/* M_CFLAGS, if defined, has system-dependent CFLAGS. */
|
||||
#if !defined(M_CFLAGS)
|
||||
#define M_CFLAGS
|
||||
#endif
|
||||
|
||||
/* CFLAGS for both GDB and readline. */
|
||||
GLOBAL_CFLAGS = -g M_CFLAGS
|
||||
CFLAGS = -I. ${HAVE_VPRINTF_DEFINE} ${GLOBAL_CFLAGS}
|
||||
/* None of the things in CFLAGS will do any harm, and on some systems
|
||||
(e.g. SunOS4) it is important to use the M_CFLAGS. */
|
||||
LDFLAGS = $(CFLAGS)
|
||||
|
||||
/*
|
||||
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. Similarly with REGEX and "regex.o".
|
||||
You must define REGEX and REGEX1 on USG machines.
|
||||
If your sysyem is missing alloca(), or, more likely, it's there but
|
||||
it doesn't work, define ALLOCA & ALLOCA1 */
|
||||
OBSTACK = obstack.o
|
||||
OBSTACK1 = obstack.o
|
||||
|
||||
#ifdef M_REGEX
|
||||
REGEX = M_REGEX
|
||||
REGEX1 = M_REGEX
|
||||
#else
|
||||
REGEX =
|
||||
REGEX1 =
|
||||
#endif
|
||||
|
||||
#ifdef M_ALLOCA
|
||||
ALLOCA = M_ALLOCA
|
||||
ALLOCA1 = M_ALLOCA
|
||||
#else
|
||||
ALLOCA =
|
||||
ALLOCA1 =
|
||||
#endif
|
||||
|
||||
/*
|
||||
define this to be "malloc.o" if you want to use the gnu malloc routine
|
||||
(useful for debugging memory allocation problems in gdb). Otherwise, leave
|
||||
it blank. */
|
||||
/* GNU_MALLOC = */
|
||||
GNU_MALLOC = malloc.o
|
||||
|
||||
/* Flags to be used in compiling malloc.o
|
||||
Specify range checking for storage allocation. */
|
||||
/* MALLOC_FLAGS = ${CFLAGS} */
|
||||
MALLOC_FLAGS = ${CFLAGS} -Drcheck -Dbotch=fatal_dump_core -DMSTATS
|
||||
|
||||
/* Define SYSV if compiling on a system V or HP machine. */
|
||||
#ifdef M_SYSV
|
||||
SYSV_DEFINE = -DSYSV
|
||||
#else
|
||||
SYSV_DEFINE =
|
||||
#endif
|
||||
|
||||
/* MUNCH_DEFINE should be -DSYSV if have System V-style nm,
|
||||
or null if have BSD-style nm. */
|
||||
#ifdef M_BSD_NM
|
||||
MUNCH_DEFINE =
|
||||
#else
|
||||
MUNCH_DEFINE = ${SYSV_DEFINE}
|
||||
#endif
|
||||
|
||||
/* Flags that describe where you can find the termcap library.
|
||||
You may need to make other arrangements for USG. */
|
||||
TERMCAP = -ltermcap
|
||||
|
||||
/* M_CLIBS, if defined, has system-dependent libs
|
||||
For example, -lPW for System V to get alloca(). */
|
||||
#ifndef M_CLIBS
|
||||
#define M_CLIBS
|
||||
#endif
|
||||
CLIBS = ${ADD_FILES} ${TERMCAP} M_CLIBS
|
||||
|
||||
ADD_FILES = ${OBSTACK} ${REGEX} ${ALLOCA} ${GNU_MALLOC}
|
||||
ADD_DEPS = ${OBSTACK1} ${REGEX1} ${ALLOCA1} ${GNU_MALLOC}
|
||||
|
||||
SFILES = blockframe.c breakpoint.c dbxread.c coffread.c command.c core.c \
|
||||
environ.c eval.c expprint.c findvar.c infcmd.c inflow.c infrun.c \
|
||||
kdb-start.c main.c printcmd.c \
|
||||
remote.c source.c stack.c standalone.c stuff.c symmisc.c symtab.c \
|
||||
utils.c valarith.c valops.c valprint.c values.c version.c expread.y \
|
||||
xgdb.c
|
||||
|
||||
DEPFILES = umax-dep.c gould-dep.c default-dep.c sun3-dep.c \
|
||||
sparc-dep.c hp9k320-dep.c hp300bsd-dep.c news-dep.c i386-dep.c \
|
||||
symmetry-dep.c convex-dep.c altos-dep.c isi-dep.c pyr-dep.c
|
||||
|
||||
PINSNS = gld-pinsn.c i386-pinsn.c sparc-pinsn.c vax-pinsn.c m68k-pinsn.c \
|
||||
ns32k-pinsn.c convex-pinsn.c pyr-pinsn.c
|
||||
|
||||
HFILES = command.h defs.h environ.h expression.h frame.h getpagesize.h \
|
||||
inferior.h symseg.h symtab.h value.h wait.h \
|
||||
a.out.encap.h a.out.gnu.h stab.gnu.h
|
||||
|
||||
OPCODES = m68k-opcode.h pn-opcode.h sparc-opcode.h npl-opcode.h vax-opcode.h \
|
||||
ns32k-opcode.h convex-opcode.h pyr-opcode.h
|
||||
|
||||
MFILES = m-hp9k320.h m-hp300bsd.h m-i386.h m-i386gas.h \
|
||||
m-i386-sv32.h m-i386g-sv32.h m-isi.h m-merlin.h \
|
||||
m-altos.h m-news.h m-newsos3.h m-npl.h m-pn.h \
|
||||
m-sparc.h m-sun2.h m-sun3.h m-sun2os4.h \
|
||||
m-sun3os4.h m-sun4os4.h m-umax.h m-vax.h m-symmetry.h m-convex.h \
|
||||
m-pyr.h
|
||||
|
||||
/* This list of files really shouldn't be in this makefile, but I can't think
|
||||
of any good way to get the readline makefile to tell us what files
|
||||
to put in our tarfile. */
|
||||
READLINE = readline.c history.c funmap.c \
|
||||
emacs_keymap.c vi_keymap.c vi_mode.c keymaps.c \
|
||||
readline.h history.h keymaps.h chardefs.h \
|
||||
inc-readline.texinfo inc-history.texinfo \
|
||||
readline.texinfo history.texinfo \
|
||||
Makefile ChangeLog
|
||||
|
||||
REMOTE_EXAMPLES = remote-sa.m68k.shar remote-multi.shar
|
||||
|
||||
POSSLIBS = obstack.h obstack.c regex.c regex.h malloc.c alloca.c
|
||||
|
||||
TESTS = testbpt.c testfun.c testrec.c testreg.c testregs.c
|
||||
|
||||
OTHERS = Makefile.dist createtags munch config.gdb ChangeLog README TAGS \
|
||||
gdb.texinfo .gdbinit COPYING expread.tab.c stab.def \
|
||||
XGDB-README copying.c Projects Convex.notes copying.awk hp-include
|
||||
|
||||
TAGFILES = ${SFILES} ${DEPFILES} ${PINSNS} ${HFILES} ${OPCODES} ${MFILES} \
|
||||
${POSSLIBS}
|
||||
TARFILES = ${TAGFILES} ${OTHERS} ${REMOTE_EXAMPLES}
|
||||
|
||||
OBS = main.o 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 \
|
||||
command.o utils.o expread.o expprint.o pinsn.o environ.o version.o \
|
||||
copying.o ${READLINEOBS}
|
||||
|
||||
TSOBS = core.o inflow.o dep.o
|
||||
|
||||
NTSOBS = standalone.o
|
||||
|
||||
TSSTART = /lib/crt0.o
|
||||
|
||||
NTSSTART = kdb-start.o
|
||||
|
||||
RL_LIB = readline/libreadline.a
|
||||
|
||||
/* Do some fancy trickery to produce a line like
|
||||
-DM_MAKEDEFINE="-DM_SYSV -DM_BSD_NM".
|
||||
*/
|
||||
MD=M_MAKEDEFINE
|
||||
|
||||
/* Avoid funny things that Sun's make throws in for us. */
|
||||
/* TARGET_ARCH is supposed to get around it putting in the machine type.
|
||||
If the "things" up there really is plural, we'll need to do something
|
||||
else as well. */
|
||||
/*.c.o:
|
||||
${CC} -c ${CFLAGS} $< */
|
||||
TARGET_ARCH=
|
||||
|
||||
all: gdb $(XGDB)
|
||||
|
||||
install: gdb $(XGDB)
|
||||
cp gdb $(bindir)/gdb.new
|
||||
mv $(bindir)/gdb.new $(bindir)/gdb
|
||||
-if [ "$(XGDB)" = xgdb ]; then \
|
||||
cp xgdb $(xbindir)/xgdb.new; \
|
||||
mv $(xbindir)/xgdb.new $(xbindir)xgdb; \
|
||||
fi
|
||||
|
||||
gdb : $(OBS) $(TSOBS) ${ADD_DEPS} ${RL_LIB}
|
||||
rm -f init.c
|
||||
./munch ${MUNCH_DEFINE} $(OBS) $(TSOBS) > init.c
|
||||
${CC-LD} $(LDFLAGS) -o gdb init.c $(OBS) $(TSOBS) ${RL_LIB} $(CLIBS)
|
||||
|
||||
/* This is useful when debugging GDB, because Unix doesn't let you run GDB
|
||||
on itself without copying the executable. So "make gdb1" will make
|
||||
gdb and put a copy in gdb1, and you can run it with "gdb gdb1". */
|
||||
gdb1 : gdb
|
||||
cp gdb gdb1
|
||||
|
||||
Makefile : Makefile.dist
|
||||
cp Makefile.dist tmp.c
|
||||
$(CC) -E >Makefile tmp.c $(MD) "-DM_MAKEDEFINE=$(MD)"
|
||||
-rm tmp.c
|
||||
/* This did not work-- -Usparc became "-Usparc" became "-Usparc.
|
||||
Or something like that. */
|
||||
/* $(CC) -E >Makefile tmp.c $(MD) "-DM_MAKEDEFINE=\"$(MD)\"" */
|
||||
|
||||
xgdb : $(OBS) $(TSOBS) xgdb.o ${ADD_DEPS} ${RL_LIB}
|
||||
rm -f init.c
|
||||
./munch ${MUNCH_DEFINE} $(OBS) $(TSOBS) xgdb.o > init.c
|
||||
$(CC-LD) $(LDFLAGS) -o xgdb init.c $(OBS) $(TSOBS) xgdb.o \
|
||||
-lXaw -lXmu -lXt -lX11 ${RL_LIB} $(CLIBS)
|
||||
|
||||
/* Old (pre R3) xgdb comp.
|
||||
$(CC-LD) $(LDFLAGS) -o xgdb init.c $(OBS) $(TSOBS) xgdb.o \
|
||||
-lXaw -lXt -lX11 $(CLIBS) */
|
||||
|
||||
kdb : $(NTSSTART) $(OBS) $(NTSOBS) ${ADD_DEPS} ${RL_LIB}
|
||||
rm -f init.c
|
||||
./munch ${MUNCH_DEFINE} $(OBS) $(NTSOBS) > init.c
|
||||
$(CC) $(LDFLAGS) -c init.c $(CLIBS)
|
||||
ld -o kdb $(NTSSTART) $(OBS) $(NTSOBS) init.o ${RL_LIB} -lc $(CLIBS)
|
||||
|
||||
/* If it can figure out the appropriate order, createtags will make sure
|
||||
that the proper m-*, *-dep, *-pinsn, and *-opcode files come first
|
||||
in the tags list. It will attempt to do the same for dbxread.c and
|
||||
coffread.c. This makes using M-. on machine dependent routines much
|
||||
easier. */
|
||||
|
||||
TAGS: ${TAGFILES}
|
||||
createtags ${TAGFILES}
|
||||
tags: TAGS
|
||||
|
||||
gdb.tar: ${TARFILES}
|
||||
rm -f gdb.tar
|
||||
mkdir dist-gdb
|
||||
cd dist-gdb ; for i in ${TARFILES} ; do ln -s ../$$i . ; done
|
||||
mkdir dist-gdb/readline
|
||||
cd dist-gdb/readline ; for i in ${READLINE} ; do ln -s ../../readline/$$i . ; done
|
||||
tar chf gdb.tar dist-gdb
|
||||
rm -rf dist-gdb
|
||||
|
||||
/* Remove gdb.tar.Z so stupid compress doesn't ask whether we want to
|
||||
overwrite it. compress -f is not what we want, because we do want
|
||||
to know if compress would not make it smaller. */
|
||||
gdb.tar.Z: gdb.tar
|
||||
if [ -f gdb.tar.Z ]; then rm -f gdb.tar.Z; else true; fi
|
||||
compress gdb.tar
|
||||
|
||||
clean:
|
||||
rm -f ${OBS} ${TSOBS} ${NTSOBS} ${OBSTACK} ${REGEX} ${GNU_MALLOC}
|
||||
rm -f init.c init.o
|
||||
rm -f xgdb.o xgdb
|
||||
rm -f gdb core gdb.tar gdb.tar.Z make.log
|
||||
rm -f gdb[0-9]
|
||||
cd readline ; make clean
|
||||
|
||||
distclean: clean expread.tab.c TAGS
|
||||
rm -f dep.c opcode.h param.h pinsn.c config.status
|
||||
rm -f y.output yacc.acts yacc.tmp
|
||||
rm -f ${TESTS} Makefile
|
||||
|
||||
realclean: clean
|
||||
rm -f expread.tab.c TAGS
|
||||
rm -f dep.c opcode.h param.h pinsn.c config.status
|
||||
rm -f Makefile
|
||||
|
||||
xgdb.o : defs.h param.h symtab.h frame.h
|
||||
|
||||
/* Make copying.c from COPYING */
|
||||
copying.c : COPYING copying.awk
|
||||
awk -f copying.awk < COPYING > copying.c
|
||||
|
||||
expread.tab.c : expread.y
|
||||
@echo 'Expect 4 shift/reduce conflict.'
|
||||
${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
|
||||
|
||||
readline/libreadline.a : force_update
|
||||
cd readline ; ${MAKE} "SYSV=${SYSV_DEFINE}" \
|
||||
"DEBUG_FLAGS=${GLOBAL_CFLAGS}" "CC=${CC}" libreadline.a
|
||||
|
||||
force_update :
|
||||
|
||||
/* Only useful if you are using the gnu malloc routines. */
|
||||
malloc.o : malloc.c
|
||||
${CC} -c ${MALLOC_FLAGS} malloc.c
|
||||
|
||||
/* dep.o depends on config.status in case someone reconfigures gdb out
|
||||
from under an already compiled gdb. */
|
||||
dep.o : dep.c config.status defs.h param.h frame.h inferior.h obstack.h \
|
||||
a.out.encap.h
|
||||
|
||||
/* pinsn.o depends on config.status in case someone reconfigures gdb out
|
||||
from under an already compiled gdb. */
|
||||
pinsn.o : pinsn.c config.status defs.h param.h symtab.h obstack.h symseg.h \
|
||||
frame.h opcode.h
|
||||
|
||||
/* The rest of this is a standard dependencies list (hand edited output of
|
||||
cpp -M). It does not include dependencies of .o files on .c files. */
|
||||
/* All files which depend on config.status also depend on param.h in case
|
||||
someone reconfigures gdb out from under an already compiled gdb. */
|
||||
blockframe.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h
|
||||
breakpoint.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h
|
||||
coffread.o : defs.h param.h config.status
|
||||
command.o : command.h defs.h
|
||||
core.o : defs.h param.h config.status a.out.encap.h
|
||||
dbxread.o : param.h config.status defs.h symtab.h obstack.h symseg.h a.out.encap.h \
|
||||
stab.gnu.h
|
||||
environ.o : environ.h
|
||||
eval.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h expression.h
|
||||
expprint.o : defs.h symtab.h obstack.h symseg.h param.h config.status expression.h
|
||||
findvar.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h value.h
|
||||
infcmd.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h inferior.h \
|
||||
environ.h value.h
|
||||
inflow.o : defs.h param.h config.status frame.h inferior.h
|
||||
infrun.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h inferior.h \
|
||||
wait.h
|
||||
kdb-start.o : defs.h param.h config.status
|
||||
main.o : defs.h command.h param.h config.status
|
||||
malloc.o : getpagesize.h
|
||||
obstack.o : obstack.h
|
||||
printcmd.o : defs.h param.h config.status frame.h symtab.h obstack.h symseg.h value.h \
|
||||
expression.h
|
||||
regex.o : regex.h
|
||||
remote.o : defs.h param.h config.status frame.h inferior.h wait.h
|
||||
source.o : defs.h symtab.h obstack.h symseg.h param.h config.status
|
||||
stack.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h
|
||||
standalone.o : defs.h param.h config.status symtab.h obstack.h symseg.h frame.h \
|
||||
inferior.h wait.h
|
||||
symmisc.o : defs.h symtab.h obstack.h symseg.h obstack.h
|
||||
symtab.o : defs.h symtab.h obstack.h symseg.h param.h config.status obstack.h
|
||||
utils.o : defs.h param.h config.status
|
||||
valarith.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h expression.h
|
||||
valops.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h frame.h \
|
||||
inferior.h
|
||||
valprint.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h
|
||||
values.o : defs.h param.h config.status symtab.h obstack.h symseg.h value.h
|
||||
|
||||
robotussin.h : getpagesize.h
|
||||
symtab.h : obstack.h symseg.h
|
||||
a.out.encap.h : a.out.gnu.h
|
||||
|
|
@ -1,114 +0,0 @@
|
|||
|
||||
Suggested projects for aspiring or current GDB hackers
|
||||
======================================================
|
||||
|
||||
(You should probably chat with kingdon@ai.mit.edu to make sure that
|
||||
no one else is doing the project you chose).
|
||||
|
||||
Add watchpoints (break if a memory location changes). This would
|
||||
usually have to involve constant single stepping, but occasionally
|
||||
there is operating system support which gdb should be able to cleanly
|
||||
use (e.g. on the 80386, there are 4 debug registers. By ptracing an
|
||||
address into them, you can get a trap on writes or on reads and
|
||||
writes).
|
||||
|
||||
Rewrite proceed, wait_for_inferior, and normal_stop to clean them up.
|
||||
Suggestions:
|
||||
|
||||
1) Make each test in wait_for_inferior a seperate subroutine
|
||||
call.
|
||||
2) Combine wait_for_inferior and normal_stop to clean up
|
||||
communication via global variables.
|
||||
3) See if you can find some way to clean up the global
|
||||
variables that are used; possibly group them by data flow
|
||||
and information content?
|
||||
|
||||
Work out some kind of way to allow running the inferior to be done as
|
||||
a sub-execution of, eg. breakpoint command lists. Currently running
|
||||
the inferior interupts any command list execution. This would require
|
||||
some rewriting of wait_for_inferior & friends, and hence should
|
||||
probably be done in concert with the above.
|
||||
|
||||
Add function arguments to gdb user defined functions.
|
||||
|
||||
Add convenience variables that refer to exec file, symbol file,
|
||||
selected frame source file, selected frame function, selected frame
|
||||
line number, etc.
|
||||
|
||||
Add a "suspend" subcommand of the "continue" command to suspend gdb
|
||||
while continuing execution of the subprocess. Useful when you are
|
||||
debugging servers and you want to dodge out and initiate a connection
|
||||
to a server running under gdb.
|
||||
|
||||
Make "handle" understand symbolic signal names.
|
||||
|
||||
Work out and implement a reasonably general mechanism for multi-threaded
|
||||
processies. There are parts of one implemented in convex-dep.c, if
|
||||
you want an example.
|
||||
|
||||
A standalone version of gdb on the i386 exists. Anyone who wants to
|
||||
do some serious working cleaning it up and making it a general
|
||||
standalone gdb should contact pace@wheaties.ai.mit.edu.
|
||||
|
||||
Add stab information to allow reasonable debugging of inline functions
|
||||
(possibly they should show up on a stack backtrace? With a note
|
||||
indicating that they weren't "real"?).
|
||||
|
||||
Implement support for specifying arbitrary locations of stack frames
|
||||
(in practice, this usually requires specification of both the top and
|
||||
bottom of the stack frame (fp and sp), since you *must* retrieve the
|
||||
pc that was saved in the innermost frame).
|
||||
|
||||
Modify the naked "until" command to step until past the current source
|
||||
line, rather than past the current pc value. This is tricky simply
|
||||
because the low level routines have no way of specifying a multi-line
|
||||
step range, and there is no way of saying "don't print stuff when we
|
||||
stop" from above (otherwise could just call step many times).
|
||||
|
||||
Modify the handling of symbols grouped through BINCL/EINCL stabs to
|
||||
allocate a partial symtab for each BINCL/EINCL grouping. This will
|
||||
seriously decrease the size of inter-psymtab dependencies and hence
|
||||
lessen the amount that needs to be read in when a new source file is
|
||||
accessed.
|
||||
|
||||
Work out some method of saving breakpoints across the reloading of an
|
||||
executable. Probably this should be by saving the commands by which
|
||||
the breakpoints were set and re-executing them (as text locations may
|
||||
change).
|
||||
|
||||
Do an "x/i $pc" after each stepi or nexti.
|
||||
|
||||
Modify all of the disassemblers to use printf_filtered to get correct
|
||||
more filtering.
|
||||
|
||||
Modify gdb to work correctly with Pascal.
|
||||
|
||||
Rewrite macros that handle frame chaining and frameless functions.
|
||||
They should be able to tell the difference between start, main, and a
|
||||
frameless function called from main.
|
||||
|
||||
Work out what information would need to be included in an executable
|
||||
by the compiler to allow gdb to debug functions which do not have a
|
||||
frame pointer. Modify gdb and gcc to do this.
|
||||
|
||||
When `attached' to a program (via either OS support or remote
|
||||
debugging), gdb should arrange to catch signals which the terminal
|
||||
might send, as it is unlikely that the program will be able to notice
|
||||
them. SIGINT and SIGTSTP are obvious examples.
|
||||
|
||||
Enhance the gdb manual with extra examples where needed.
|
||||
|
||||
Arrange for list_command not to use decode_line_1 and thus not require
|
||||
symbols to be read in simply to read a source file.
|
||||
|
||||
Problem in xgdb; the readline library needs the terminal in CBREAK
|
||||
mode for command line editing, but this makes it difficult to dispatch
|
||||
on button presses. Possible solution: use a define to replace getc in
|
||||
readline.c with a routine that does button dispatches. You should
|
||||
probably see XGDB-README before you fiddle with XGDB. Also, someone
|
||||
is implementing a new xgdb; it may not be worth while fiddling with
|
||||
the old one.
|
||||
|
||||
# Local Variables:
|
||||
# mode: text
|
||||
# End:
|
|
@ -1,142 +0,0 @@
|
|||
This is GDB, the GNU source-level debugger, presently running under un*x.
|
||||
|
||||
Before compiling GDB, you must tell GDB what kind of machine you are
|
||||
running on. To do this, type `config.gdb machine', where machine is
|
||||
something like `vax' or `sun2'. For a list of valid machine types,
|
||||
type `config.gdb'.
|
||||
|
||||
Normally config.gdb edits the makefile as necessary. If you have to
|
||||
edit the makefile on a standard machine listed in config.gdb this
|
||||
should be considered a bug and reported as such.
|
||||
|
||||
Once these files are set up, just `make' will do everything,
|
||||
producing an executable `gdb' in this directory.
|
||||
|
||||
If you want a new (current to this release) version of the manual, you
|
||||
will have to use the gdb.texinfo file provided with this distribution.
|
||||
The gdb.texinfo file requires the texinfo-format-buffer command from
|
||||
emacs 18.55 or later.
|
||||
|
||||
About languages other than C...
|
||||
|
||||
C++ support has been integrated into gdb. GDB should work with
|
||||
FORTRAN programs (if you have problem, please send a bug report), but
|
||||
I am not aware of anyone who is working on getting it to use the
|
||||
syntax of any language other than C or C++. Pascal programs which use
|
||||
sets, subranges, file variables, or nested functions will not
|
||||
currently work.
|
||||
|
||||
About -gg format...
|
||||
|
||||
Currently GDB version 3.x does *not* support GCC's -gg format. This
|
||||
is because it (in theory) has fast enough startup on dbx debugging
|
||||
format object files that -gg format is unnecessary (and hence
|
||||
undesirable, since it wastes space and processing power in gcc). I
|
||||
would like to hear people's opinions on the amount of time currently
|
||||
spent in startup; is it fast enough?
|
||||
|
||||
About remote debugging...
|
||||
|
||||
The two files remote-multi.shar and remote-sa.m68k.shar contain two
|
||||
examples of a remote stub to be used with remote.c. The the -multi
|
||||
file is a general stub that can probably be running on various
|
||||
different flavors of unix to allow debugging over a serial line from
|
||||
one machine to another. The remote-sa.m68k.shar is designed to run
|
||||
standalone on a 68k type cpu and communicate properley with the
|
||||
remote.c stub over a serial line.
|
||||
|
||||
About reporting bugs...
|
||||
|
||||
The correct address for reporting bugs found with gdb is
|
||||
"bug-gdb@prep.ai.mit.edu". Please send all bugs to that address.
|
||||
|
||||
About xgdb...
|
||||
|
||||
xgdb.c was provided to us by the user community; it is not an integral
|
||||
part of the gdb distribution. The problem of providing visual
|
||||
debugging support on top of gdb is peripheral to the GNU project and
|
||||
(at least right now) we can't afford to put time into it. So while we
|
||||
will be happy to incorporate user fixes to xgdb.c, we do not guarantee
|
||||
that it will work and we will not fix bugs reported in it. Someone is
|
||||
working on writing a new XGDB, so improving (e.g. by fixing it so that
|
||||
it will work, if it doesn't currently) the current one is not worth it.
|
||||
|
||||
For those intersted in auto display of source and the availability of
|
||||
an editor while debugging I suggest trying gdb-mode in gnu-emacs.
|
||||
Comments on this mode are welcome.
|
||||
|
||||
About the machine-dependent files...
|
||||
|
||||
m-<machine>.h (param.h is a link to this file).
|
||||
This file contains macro definitions that express information
|
||||
about the machine's registers, stack frame format and instructions.
|
||||
|
||||
<machine>-opcode.h (opcode.h is a link to this file).
|
||||
<machine>-pinsn.c (pinsn.c is a link to this file).
|
||||
These files contain the information necessary to print instructions
|
||||
for your cpu type.
|
||||
|
||||
<machine>-dep.c (dep.c is a link to this file).
|
||||
Those routines which provide a low level interface to ptrace and which
|
||||
tend to be machine-dependent. (The machine-independent routines are in
|
||||
`infrun.c' and `inflow.c')
|
||||
|
||||
About writing code for GDB...
|
||||
|
||||
We appreciate having users contribute code that is of general use, but
|
||||
for it to be included in future GDB releases it must be cleanly
|
||||
written. We do not want to include changes that will needlessly make future
|
||||
maintainance difficult. It is not much harder to do things right, and
|
||||
in the long term it is worth it to the GNU project, and probably to
|
||||
you individually as well.
|
||||
|
||||
Please code according to the GNU coding standards. If you do not have
|
||||
a copy, you can request one by sending mail to gnu@prep.ai.mit.edu.
|
||||
|
||||
Please try to avoid making machine-specific changes to
|
||||
machine-independent files (i.e. all files except "param.h" and
|
||||
"dep.c". "pinsn.c" and "opcode.h" are processor-specific but not
|
||||
operating system-dependent). If this is unavoidable, put a hook in
|
||||
the machine-independent file which calls a (possibly)
|
||||
machine-dependent macro (for example, the IGNORE_SYMBOL macro can be
|
||||
used for any symbols which need to be ignored on a specific machine.
|
||||
Calling IGNORE_SYMBOL in dbxread.c is a lot cleaner than a maze of #if
|
||||
defined's). The machine-independent code should do whatever "most"
|
||||
machines want if the macro is not defined in param.h. Using #if
|
||||
defined can sometimes be OK (e.g. SET_STACK_LIMIT_HUGE) but should be
|
||||
conditionalized on a specific feature of an operating system (set in
|
||||
param.h) rather than something like #if defined(vax) or #if
|
||||
defined(SYSV).
|
||||
|
||||
It is better to replace entire routines which may be system-specific,
|
||||
rather than put in a whole bunch of hooks which are probably not going
|
||||
to be helpful for any purpose other than your changes. For example,
|
||||
if you want to modify dbxread.c to deal with DBX debugging symbols
|
||||
which are in COFF files rather than BSD a.out files, do something
|
||||
along the lines of a macro GET_NEXT_SYMBOL, which could have
|
||||
different definitions for COFF and a.out, rather than trying to put
|
||||
the necessary changes throughout all the code in dbxread.c that
|
||||
currently assumes BSD format.
|
||||
|
||||
Please avoid duplicating code. For example, if something needs to be
|
||||
changed in read_inferior_memory, it is very painful because there is a
|
||||
copy in every dep.c file. The correct way to do this is to put (in
|
||||
this case) the standard ptrace interfaces in a separate file ptrace.c,
|
||||
which is used by all systems which have ptrace. ptrace.c would deal
|
||||
with variations between systems the same way any system-independent
|
||||
file would (hooks, #if defined, etc.).
|
||||
|
||||
About debugging gdb with itself...
|
||||
|
||||
You probably want to do a "make TAGS" after you configure your
|
||||
distribution; this will put the machine dependent routines for your
|
||||
local machine where they will be accessed first by a M-period .
|
||||
|
||||
Also, make sure that you've compiled gdb with your local cc or taken
|
||||
appropriate precautions regarding ansification of include files. See
|
||||
the Makefile for more information.
|
||||
|
||||
The "info" command, when executed without a subcommand in a gdb being
|
||||
debugged by gdb, will pop you back up to the top level gdb. See
|
||||
.gdbinit for more details.
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
button "show" push-to-file %S
|
||||
button "back" pop-file
|
||||
button "break in" break %S
|
||||
button "break at" break %l
|
||||
button delete delete %b%e
|
||||
button backtrace
|
||||
button up
|
||||
button down
|
||||
button print print %E
|
||||
button print* print *(%E)
|
||||
button next
|
||||
button step
|
||||
button "do upto" until %l%e
|
||||
button finish
|
||||
button continue cont%e
|
Loading…
Reference in New Issue