mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-11-25 10:15:40 +00:00
Compare commits
2 Commits
gdb-199904
...
gdb-4_18-b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a0749de2ef | ||
|
|
c1d4905c6e |
1126
gdb/ChangeLog
1126
gdb/ChangeLog
File diff suppressed because it is too large
Load Diff
@@ -143,12 +143,6 @@ Thu Dec 11 13:40:46 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
* dwarf2read.c (dwarf_decode_lines): Change type of address to
|
||||
CORE_ADDR.
|
||||
|
||||
Thu Dec 11 22:39:02 1997 Mark Alexander <marka@cygnus.com>
|
||||
|
||||
From change made to branch by Bob Manson <manson@cygnus.com>:
|
||||
* tic80-tdep.c (tic80_push_arguments): The compiler always
|
||||
passes structs by reference.
|
||||
|
||||
Thu Dec 11 14:28:01 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
|
||||
|
||||
* tracepoint.c (trace_find_command): don't error if going
|
||||
@@ -1022,10 +1016,6 @@ Sat Aug 9 01:50:14 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
|
||||
|
||||
Fri Aug 8 21:35:44 1997 Mark Alexander <marka@cygnus.com>
|
||||
|
||||
* config/tic80/tic80.mt:
|
||||
(GDBSERVER-DEPFILES, GDBSERVER_LIBS): Define for gdbserver.
|
||||
(SIM): Remove -lm to prevent make errors.
|
||||
* configure.tgt: add gdbserver to configdirs for tic80.
|
||||
* gdbserver/utils.c (error): Change prototype to match defs.h.
|
||||
* gdbserver/low-sim.c: Change simulator calls to use new interface.
|
||||
* remote.c (remote_write_bytes): Include '$' at start of packet
|
||||
@@ -1161,11 +1151,6 @@ Wed Aug 6 16:15:31 1997 Geoffrey Noer <noer@cygnus.com>
|
||||
(_initialize_bdm_ppc): new
|
||||
* config/powerpc/tm-ppc-eabi.h: add necessary CPU32 BDM defines
|
||||
|
||||
Tue Aug 5 23:56:14 1997 Mark Alexander <marka@cygnus.com>
|
||||
|
||||
* tic80-tdep.c (tic80_init_extra_frame_info): Allow zero
|
||||
as a valid SP-relative offset of a saved register.
|
||||
|
||||
Wed Aug 6 00:24:08 1997 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* hpread.c (hpread_read_struct_type): Use accessor macros rather
|
||||
@@ -1669,15 +1654,6 @@ Wed May 14 08:58:55 1997 Jeffrey A Law (law@cygnus.com)
|
||||
symbols to find the end of the prologue.
|
||||
* mn10300-tdep.c (mn10300_skip_prologue): Likewise.
|
||||
|
||||
Wed May 14 12:04:49 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* config/tic80/tm-tic80.h (NUM_REGS): 38 not 37.
|
||||
|
||||
Mon May 12 11:35:04 1997 Mark Alexander <marka@cygnus.com>
|
||||
|
||||
* tic80-tdep.c, config/tic80/tm-tic80.h: First cut at getting
|
||||
basic C80 features working.
|
||||
|
||||
Thu May 8 08:42:47 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* configure.in (AC_TYPE_SIGNAL): Add
|
||||
@@ -1719,10 +1695,6 @@ Thu May 1 02:28:21 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
|
||||
* printcmd.c (disassemble_command): Adjust low function bound
|
||||
by FUNCTION_START_OFFSET.
|
||||
|
||||
Wed Apr 30 15:23:02 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* config/tic80/tm-tic80.h (BREAKPOINT): Set it to trap 73.
|
||||
|
||||
Mon Apr 28 21:25:32 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
|
||||
|
||||
* Makefile.in: Add rule for gnu-nat.o and i386gnu-nat.o (Gnu Hurd)
|
||||
@@ -1790,15 +1762,6 @@ Thu Apr 24 13:31:10 1997 Jeffrey A Law (law@cygnus.com)
|
||||
* mn10300-tdep.c (mn10300_analyze_prologue): Check for a return
|
||||
insn at "pc", not "fi->pc".
|
||||
|
||||
Thu Apr 24 16:11:47 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* config/tic80/tm-tic80.h (NUM_REGS): Four 64bit accumulators.
|
||||
(REGISTER_BYTE, REGISTER_RAW_SIZE, REGISTER_SIZE,
|
||||
MAX_REGISTER_RAW_SIZE, REGISTER_VIRTUAL_TYPE): Adjust.
|
||||
(NPC_REGNUM): Tic80 has a delay slot.
|
||||
(R0_REGNUM, Rn_REGNUM, An_REGNUM): For sim, provide base/bound for
|
||||
register blocks.
|
||||
|
||||
Wed Apr 23 11:18:45 1997 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* config/mn10200/tm-mn10200.h (STORE_RETURN_VALUE): Pointers are
|
||||
@@ -1817,10 +1780,6 @@ Tue Apr 22 11:58:15 1997 Fred Fish <fnf@cygnus.com>
|
||||
(floatformat_from_doublest): Postswap output words for
|
||||
the floatformat_littlebyte_bigwords format.
|
||||
|
||||
Mon Apr 21 22:44:47 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* config/tic80/tic80.mt (SIM): Link in simulator.
|
||||
|
||||
Tue Apr 22 09:02:10 1997 Stu Grossman (grossman@critters.cygnus.com)
|
||||
|
||||
* config/alpha/alpha-osf3.mh config/i386/{i386gnu linux}.mh
|
||||
@@ -2143,11 +2102,6 @@ Mon Mar 31 14:55:53 1997 Ian Lance Taylor <ian@cygnus.com>
|
||||
* configure.in: Generate .gdbinit from gdbinit.in.
|
||||
* configure: Rebuild.
|
||||
|
||||
Sun Mar 30 12:28:24 1997 Fred Fish <fnf@cygnus.com>
|
||||
|
||||
* config/tic80/tic80.mt: Disable using the simulator
|
||||
until it is ready.
|
||||
|
||||
Sat Mar 29 13:57:20 1997 Fred Fish <fnf@cygnus.com>
|
||||
|
||||
* COPYING: Install new version of file from FSF.
|
||||
@@ -2157,10 +2111,6 @@ Fri Mar 28 18:33:41 1997 Ian Lance Taylor <ian@cygnus.com>
|
||||
|
||||
* Makefile.in (distclean): Remove .gdbinit.
|
||||
|
||||
Fri Mar 28 15:37:30 1997 Fred Fish <fnf@cygnus.com>
|
||||
|
||||
* config/tic80/tm-tic80.h (NAMES_HAVE_UNDERSCORE): Define.
|
||||
|
||||
Fri Mar 28 15:38:04 1997 Mike Meissner <meissner@cygnus.com>
|
||||
|
||||
* remote-sim.c (gdb_os_{,e}vprintf_filtered): Change stdarg type
|
||||
@@ -2217,10 +2167,6 @@ Sat Mar 22 16:41:35 1997 Fred Fish <fnf@cygnus.com>
|
||||
|
||||
* remote-sim.c (simulator_command): Add comment about dealing with
|
||||
NULL or empty args.
|
||||
* Makefile.in (tic80-tdep.o): Add target.
|
||||
* configure.tgt: Add tic80 case.
|
||||
* tic80-tdep.c: New file.
|
||||
* config/tic80/{tic80.mt, tm-tic80.h}: New files.
|
||||
|
||||
Sat Mar 22 02:48:11 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
|
||||
|
||||
|
||||
@@ -5718,13 +5718,6 @@ Wed Apr 29 14:02:59 1998 David Taylor <taylor@texas.cygnus.com>
|
||||
|
||||
Wed Apr 29 10:20:40 1998 John Metzler <jmetzler@cygnus.com>
|
||||
|
||||
* nec4102rom.c: New file implements ROM monitor adapter for
|
||||
nec-vr4102 board. This board hosts the vr4111 chip. This file
|
||||
required extensions to the monitor_ops structure, hooks for wait
|
||||
filter, new flags. This version does not support more than one
|
||||
breakpoint and resuming after a breakpoint in 16 bit mode is
|
||||
completely disfunctional.
|
||||
|
||||
* monitor.h: Defined additional hooks for dmpregs, configure_hooks
|
||||
and wait_filter. These additions require that all ROM monitor
|
||||
interfaces be recoded to initialize monitor ops using assignments
|
||||
@@ -6488,9 +6481,6 @@ Wed Mar 4 01:39:08 1998 Ron Unrau <runrau@cygnus.com>
|
||||
|
||||
Tue Mar 3 17:19:08 1998 John Metzler <jmetzler@cygnus.com>
|
||||
|
||||
* config/mips/tm-vr4xxx.h: implements vr4111 as separate from 4300
|
||||
* config/mips/vr4xxx.tm: implements vr4111 as separate from 4300
|
||||
* configure.tgt: Recognise mips64vr4111-*-elf as vr4xxx
|
||||
* dwarfread.c (read_tag_pointer_type): Pointer sizes now come from
|
||||
TARGET_PTR_BIT rather from sizeof(char *) on host.
|
||||
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
d10v target Andrew Cagney cagney@cygnus.com
|
||||
d30v target Andrew Cagney cagney@cygnus.com
|
||||
mips target Andrew Cagney cagney@cygnus.com
|
||||
powerpc target Andrew Cagney cagney@cygnus.com
|
||||
generic arch support Andrew Cagney cagney@cygnus.com
|
||||
target vector Andrew Cagney cagney@cygnus.com
|
||||
remote.c Andrew Cagney cagney@cygnus.com
|
||||
djgpp native DJ Delorie dj@cygnus.com
|
||||
win32 host & native Chris Faylor cgf@cygnus.com
|
||||
main (main.c, top.c) Elena Zannoni ezannoni@cygnus.com
|
||||
readline Elena Zannoni ezannoni@cygnus.com
|
||||
arm target Elena Zannoni ezannoni@cygnus.com
|
||||
command interpreter Fernando Nasser fnasser@cygnus.com
|
||||
generic symtabs Jim Blandy jimb@cygnus.com
|
||||
dwarf readers Jim Blandy jimb@cygnus.com
|
||||
elf reader Jim Blandy jimb@cygnus.com
|
||||
stabs reader Jim Blandy jimb@cygnus.com
|
||||
x86 linux native Jim Blandy jimb@cygnus.com
|
||||
Scheme support Jim Blandy jimb@cygnus.com
|
||||
m32r target Michael Snyder msnyder@cygnus.com
|
||||
tracing Michael Snyder msnyder@cygnus.com
|
||||
threads Michael Snyder msnyder@cygnus.com
|
||||
breakpoint.c Michael Snyder msnyder@cygnus.com
|
||||
macos host & native Stan Shebs shebs@cygnus.com
|
||||
sds protocol Stan Shebs shebs@cygnus.com
|
||||
rdi/adp protocol Stan Shebs shebs@cygnus.com
|
||||
gdbserver Stan Shebs shebs@cygnus.com
|
||||
documentation Stan Shebs shebs@cygnus.com
|
||||
testsuite Stan Shebs shebs@cygnus.com
|
||||
language support David Taylor taylor@cygnus.com
|
||||
expression eval David Taylor taylor@cygnus.com
|
||||
defs.h David Taylor taylor@cygnus.com
|
||||
utils.c David Taylor taylor@cygnus.com
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999
|
||||
# Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998
|
||||
# Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GDB.
|
||||
@@ -47,8 +47,6 @@ top_builddir = .
|
||||
SHELL = @SHELL@
|
||||
EXEEXT = @EXEEXT@
|
||||
|
||||
AWK = @AWK@
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
@@ -217,7 +215,7 @@ CDEPS = $(XM_CDEPS) $(TM_CDEPS) $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE) \
|
||||
ADD_FILES = $(REGEX) $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES)
|
||||
ADD_DEPS = $(REGEX1) $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES)
|
||||
|
||||
VERSION = 19990422
|
||||
VERSION=4.18
|
||||
DIST=gdb
|
||||
|
||||
LINT=/usr/5bin/lint
|
||||
@@ -251,13 +249,6 @@ ANNOTATE_OBS = annotate.o
|
||||
@target_makefile_frag@
|
||||
# End of host and target-dependent makefile fragments
|
||||
|
||||
# Possibly ignore the simulator. If the simulator is being ignored,
|
||||
# these expand into SIM= and SIM_OBJ=, overriding the entries from
|
||||
# target_makefile_frag
|
||||
#
|
||||
@IGNORE_SIM@
|
||||
@IGNORE_SIM_OBS@
|
||||
|
||||
FLAGS_TO_PASS = \
|
||||
"prefix=$(prefix)" \
|
||||
"exec_prefix=$(exec_prefix)" \
|
||||
@@ -928,7 +919,7 @@ ALLDEPFILES = 29k-share/udi/udip2soc.c 29k-share/udi/udr.c \
|
||||
convex-tdep.c convex-xdep.c \
|
||||
core-sol2.c core-regset.c core-aout.c corelow.c \
|
||||
dcache.c delta68-nat.c dpx2-nat.c dstread.c exec.c fork-child.c \
|
||||
gould-tdep.c gould-xdep.c h8300-tdep.c h8500-tdep.c \
|
||||
go32-xdep.c gould-tdep.c gould-xdep.c h8300-tdep.c h8500-tdep.c \
|
||||
hp300ux-nat.c hppa-tdep.c hppab-nat.c hppah-nat.c \
|
||||
hp-psymtab-read.c hp-symtab-read.c \
|
||||
i386-tdep.c i386b-nat.c i386mach-nat.c i386v-nat.c \
|
||||
@@ -1126,6 +1117,8 @@ gdbtypes.o: gdbtypes.c $(bfd_h) complaints.h $(defs_h) $(expression_h) \
|
||||
gnu-nat.o: process_reply_S.h exc_request_S.h notify_S.h msg_reply_S.h \
|
||||
exc_request_U.h msg_U.h gnu-nat.h
|
||||
|
||||
go32-xdep.o: go32-xdep.c
|
||||
|
||||
# OBSOLETE gould-tdep.o: gould-tdep.c $(OP_INCLUDE)/np1.h $(defs_h) $(frame_h) \
|
||||
# OBSOLETE $(gdbcore_h) $(symtab_h)
|
||||
|
||||
@@ -1203,11 +1196,11 @@ jv-lang.o: jv-lang.c $(bfd_h) $(defs_h) $(symtab_h) $(gdbtypes_h) \
|
||||
|
||||
jv-typeprint.o: jv-typeprint.c $(bfd_h) $(defs_h) $(symtab_h) $(gdbtypes_h) \
|
||||
$(value_h) $(INCLUDE_DIR)/demangle.h jv-lang.h gdb_string.h \
|
||||
typeprint.h c-lang.h
|
||||
typeprint.h
|
||||
|
||||
jv-valprint.o: jv-valprint.c $(bfd_h) $(defs_h) $(symtab_h) $(gdbtypes_h) \
|
||||
$(expression_h) $(value_h) $(INCLUDE_DIR)/demangle.h valprint.h \
|
||||
language.h jv-lang.h c-lang.h gdbcore.h annotate.h
|
||||
language.h jv-lang.h c-lang.h
|
||||
|
||||
language.o: language.c $(bfd_h) $(defs_h) $(expression_h) $(frame_h) \
|
||||
$(gdbcmd_h) $(gdbtypes_h) language.h parser-defs.h $(symtab_h) \
|
||||
@@ -1304,7 +1297,7 @@ nindy-tdep.o: nindy-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(gdbcore_h)
|
||||
ns32k-tdep.o: ns32k-tdep.c $(bfd_h) $(dis-asm_h) $(defs_h)
|
||||
|
||||
objfiles.o: objfiles.c $(bfd_h) $(defs_h) objfiles.h symfile.h \
|
||||
$(symtab_h) gdb_string.h $(breakpoint_h)
|
||||
$(symtab_h) gdb_string.h
|
||||
|
||||
osfsolib.o: osfsolib.c $(command_h) $(defs_h) $(gdbcore_h) $(inferior_h) \
|
||||
objfiles.h gnu-regex.h symfile.h target.h language.h gdb_string.h
|
||||
@@ -1511,7 +1504,7 @@ stabsread.o: stabsread.c $(bfd_h) $(INCLUDE_DIR)/aout/stab.def \
|
||||
stack.o: stack.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) $(inferior_h) \
|
||||
language.h target.h gdb_string.h
|
||||
|
||||
ax-general.o: ax-general.c $(ax_h) $(defs_h) $(value_h)
|
||||
ax-general.o: ax-general.c $(ax_h) $(defs_h)
|
||||
ax-gdb.o: ax-gdb.c $(defs_h) $(symtab_h) symfile.h $(gdbtypes_h) \
|
||||
$(value_h) $(expression_h) $(command_h) $(ax_h) $(gdbcmd_h) ax-gdb.h
|
||||
|
||||
@@ -1540,8 +1533,6 @@ symtab.o: symtab.c call-cmds.h $(defs_h) $(expression_h) $(frame_h) \
|
||||
tahoe-tdep.o: tahoe-tdep.c $(OP_INCLUDE)/tahoe.h $(defs_h) \
|
||||
$(symtab_h)
|
||||
|
||||
tic80-tdep.o: tic80-tdep.c $(defs_h)
|
||||
|
||||
target.o: target.c $(bfd_h) $(defs_h) $(gdbcmd_h) $(inferior_h) \
|
||||
objfiles.h symfile.h target.h gdb_string.h
|
||||
|
||||
|
||||
7
gdb/NEWS
7
gdb/NEWS
@@ -1,13 +1,6 @@
|
||||
What has changed in GDB?
|
||||
(Organized release by release)
|
||||
|
||||
*** Changes since GDB-4.18:
|
||||
|
||||
* New targets
|
||||
|
||||
TI TMS320C80 tic80-*-*
|
||||
|
||||
|
||||
*** Changes in GDB-4.18:
|
||||
|
||||
* New native configurations
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
This is GDB, the GNU source-level debugger.
|
||||
A summary of new features is in the file `NEWS'.
|
||||
|
||||
See the GDB home page at http://sourceware.cygnus.com/gdb/ for up to
|
||||
date release information, mailing list links and archives, etc.
|
||||
See the GDB home page at http://www.cygnus.com/gdb/ for up to date
|
||||
release information, mailing list links and archives, etc.
|
||||
|
||||
|
||||
Unpacking and Installation -- quick overview
|
||||
@@ -152,8 +152,6 @@ directory. That directory contains:
|
||||
|
||||
`gdb-4.18/readline'
|
||||
source for the GNU command-line interface
|
||||
NOTE: The readline library is compiled for use by GDB, but will
|
||||
not be installed on your system when "make install" is issued.
|
||||
|
||||
`gdb-4.18/sim'
|
||||
source for some simulators (ARM, D10V, SPARC, M32R, MIPS, PPC, V850, etc)
|
||||
|
||||
@@ -510,7 +510,7 @@ init_extra_frame_info (frame)
|
||||
but there isn't any way to tell the difference. */
|
||||
init_frame_info (1, frame);
|
||||
else {
|
||||
/* We're in get_prev_frame.
|
||||
/* We're in get_prev_frame_info.
|
||||
Take care of everything in init_frame_pc. */
|
||||
;
|
||||
}
|
||||
@@ -668,7 +668,7 @@ write_register_stack (memaddr, myaddr, actual_mem_addr)
|
||||
The argument RAW_BUFFER must point to aligned memory. */
|
||||
|
||||
void
|
||||
a29k_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lvalp)
|
||||
get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lvalp)
|
||||
char *raw_buffer;
|
||||
int *optimized;
|
||||
CORE_ADDR *addrp;
|
||||
|
||||
@@ -35,6 +35,7 @@ fetch_inferior_registers (ignored)
|
||||
struct ptrace_$data_regs_m68k inferior_registers;
|
||||
struct ptrace_$floating_regs_m68k inferior_fp_registers;
|
||||
struct ptrace_$control_regs_m68k inferior_control_registers;
|
||||
extern char registers[];
|
||||
|
||||
ptrace_$init_control(&inferior_control_registers);
|
||||
inferior_fp_registers.size = sizeof(inferior_fp_registers);
|
||||
@@ -77,6 +78,7 @@ store_inferior_registers (regno)
|
||||
struct ptrace_$data_regs_m68k inferior_registers;
|
||||
struct ptrace_$floating_regs_m68k inferior_fp_registers;
|
||||
struct ptrace_$control_regs_m68k inferior_control_registers;
|
||||
extern char registers[];
|
||||
|
||||
ptrace_$init_control(&inferior_control_registers);
|
||||
inferior_fp_registers.size = sizeof(inferior_fp_registers);
|
||||
|
||||
@@ -88,9 +88,6 @@
|
||||
name, as a C string. */
|
||||
#undef TARGET_CPU_DEFAULT
|
||||
|
||||
/* Define if the simulator is being linked in. */
|
||||
#undef WITH_SIM
|
||||
|
||||
/* Set to true if the save_state_t structure is present */
|
||||
#define HAVE_STRUCT_SAVE_STATE_T 0
|
||||
|
||||
|
||||
@@ -493,7 +493,7 @@ AC_DEFUN(CY_AC_PATH_ITCLCONFIG, [
|
||||
if test x"${no_itcl}" = x ; then
|
||||
# we reset no_itcl in case something fails here
|
||||
no_itcl=true
|
||||
AC_ARG_WITH(itclconfig, [ --with-itclconfig Directory containing itcl configuration (itclConfig.sh)],
|
||||
AC_ARG_WITH(itclconfig, [ --with-itclconfig directory containing itcl configuration (itclConfig.sh)],
|
||||
with_itclconfig=${withval})
|
||||
AC_MSG_CHECKING([for Itcl configuration])
|
||||
AC_CACHE_VAL(ac_cv_c_itclconfig,[
|
||||
@@ -619,7 +619,7 @@ AC_DEFUN(CY_AC_PATH_ITKCONFIG, [
|
||||
if test x"${no_itk}" = x ; then
|
||||
# we reset no_itk in case something fails here
|
||||
no_itk=true
|
||||
AC_ARG_WITH(itkconfig, [ --with-itkconfig Directory containing itk configuration (itkConfig.sh)],
|
||||
AC_ARG_WITH(itkconfig, [ --with-itkconfig directory containing itk configuration (itkConfig.sh)],
|
||||
with_itkconfig=${withval})
|
||||
AC_MSG_CHECKING([for Itk configuration])
|
||||
AC_CACHE_VAL(ac_cv_c_itkconfig,[
|
||||
@@ -765,7 +765,7 @@ AC_DEFUN(CY_AC_PATH_TIXCONFIG, [
|
||||
if test x"${no_tix}" = x ; then
|
||||
# we reset no_tix in case something fails here
|
||||
no_tix=true
|
||||
AC_ARG_WITH(tixconfig, [ --with-tixconfig Directory containing tix configuration (tixConfig.sh)],
|
||||
AC_ARG_WITH(tixconfig, [ --with-tixconfig directory containing tix configuration (tixConfig.sh)],
|
||||
with_tixconfig=${withval})
|
||||
AC_MSG_CHECKING([for Tix configuration])
|
||||
AC_CACHE_VAL(ac_cv_c_tixconfig,[
|
||||
|
||||
6
gdb/aclocal.m4
vendored
6
gdb/aclocal.m4
vendored
@@ -505,7 +505,7 @@ AC_DEFUN(CY_AC_PATH_ITCLCONFIG, [
|
||||
if test x"${no_itcl}" = x ; then
|
||||
# we reset no_itcl in case something fails here
|
||||
no_itcl=true
|
||||
AC_ARG_WITH(itclconfig, [ --with-itclconfig Directory containing itcl configuration (itclConfig.sh)],
|
||||
AC_ARG_WITH(itclconfig, [ --with-itclconfig directory containing itcl configuration (itclConfig.sh)],
|
||||
with_itclconfig=${withval})
|
||||
AC_MSG_CHECKING([for Itcl configuration])
|
||||
AC_CACHE_VAL(ac_cv_c_itclconfig,[
|
||||
@@ -631,7 +631,7 @@ AC_DEFUN(CY_AC_PATH_ITKCONFIG, [
|
||||
if test x"${no_itk}" = x ; then
|
||||
# we reset no_itk in case something fails here
|
||||
no_itk=true
|
||||
AC_ARG_WITH(itkconfig, [ --with-itkconfig Directory containing itk configuration (itkConfig.sh)],
|
||||
AC_ARG_WITH(itkconfig, [ --with-itkconfig directory containing itk configuration (itkConfig.sh)],
|
||||
with_itkconfig=${withval})
|
||||
AC_MSG_CHECKING([for Itk configuration])
|
||||
AC_CACHE_VAL(ac_cv_c_itkconfig,[
|
||||
@@ -777,7 +777,7 @@ AC_DEFUN(CY_AC_PATH_TIXCONFIG, [
|
||||
if test x"${no_tix}" = x ; then
|
||||
# we reset no_tix in case something fails here
|
||||
no_tix=true
|
||||
AC_ARG_WITH(tixconfig, [ --with-tixconfig Directory containing tix configuration (tixConfig.sh)],
|
||||
AC_ARG_WITH(tixconfig, [ --with-tixconfig directory containing tix configuration (tixConfig.sh)],
|
||||
with_tixconfig=${withval})
|
||||
AC_MSG_CHECKING([for Tix configuration])
|
||||
AC_CACHE_VAL(ac_cv_c_tixconfig,[
|
||||
|
||||
@@ -154,14 +154,8 @@ struct linked_proc_info
|
||||
think this will be a problem in praxis, though.
|
||||
*/
|
||||
|
||||
#ifndef TM_LINUXALPHA_H
|
||||
/* HACK: Provide a prototype when compiling this file for non
|
||||
linuxalpha targets. */
|
||||
long alpha_linux_sigtramp_offset PARAMS ((CORE_ADDR pc));
|
||||
#endif
|
||||
long
|
||||
alpha_linux_sigtramp_offset (pc)
|
||||
CORE_ADDR pc;
|
||||
alpha_linux_sigtramp_offset (CORE_ADDR pc)
|
||||
{
|
||||
unsigned int i[3], w;
|
||||
long off;
|
||||
@@ -909,7 +903,7 @@ alpha_push_arguments (nargs, args, sp, struct_return, struct_addr)
|
||||
int struct_return;
|
||||
CORE_ADDR struct_addr;
|
||||
{
|
||||
int i;
|
||||
register i;
|
||||
int accumulate_size = struct_return ? 8 : 0;
|
||||
int arg_regs_size = ALPHA_NUM_ARG_REGS * 8;
|
||||
struct alpha_arg { char *contents; int len; int offset; };
|
||||
@@ -1215,21 +1209,18 @@ alpha_skip_prologue (pc, lenient)
|
||||
continue;
|
||||
if ((inst & 0xffff0000) == 0x23de0000) /* lda $sp,n($sp) */
|
||||
continue;
|
||||
if ((inst & 0xffe01fff) == 0x43c0153e) /* subq $sp,n,$sp */
|
||||
continue;
|
||||
|
||||
if ((inst & 0xfc1f0000) == 0xb41e0000
|
||||
&& (inst & 0xffff0000) != 0xb7fe0000)
|
||||
else if ((inst & 0xfc1f0000) == 0xb41e0000
|
||||
&& (inst & 0xffff0000) != 0xb7fe0000)
|
||||
continue; /* stq reg,n($sp) */
|
||||
/* reg != $zero */
|
||||
if ((inst & 0xfc1f0000) == 0x9c1e0000
|
||||
&& (inst & 0xffff0000) != 0x9ffe0000)
|
||||
else if ((inst & 0xfc1f0000) == 0x9c1e0000
|
||||
&& (inst & 0xffff0000) != 0x9ffe0000)
|
||||
continue; /* stt reg,n($sp) */
|
||||
/* reg != $zero */
|
||||
if (inst == 0x47de040f) /* bis sp,sp,fp */
|
||||
else if (inst == 0x47de040f) /* bis sp,sp,fp */
|
||||
continue;
|
||||
|
||||
break;
|
||||
else
|
||||
break;
|
||||
}
|
||||
return pc + offset;
|
||||
}
|
||||
@@ -1392,7 +1383,6 @@ alpha_call_dummy_address ()
|
||||
return SYMBOL_VALUE_ADDRESS (sym) + 4;
|
||||
}
|
||||
|
||||
void _initialize_alpha_tdep PARAMS ((void));
|
||||
void
|
||||
_initialize_alpha_tdep ()
|
||||
{
|
||||
|
||||
@@ -54,6 +54,7 @@ core_file_command (filename, from_tty)
|
||||
int from_tty;
|
||||
{
|
||||
int val;
|
||||
extern char registers[];
|
||||
|
||||
/* Discard all vestiges of any previous core file
|
||||
and mark data and stack spaces as empty. */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Annotation routines for GDB.
|
||||
Copyright 1986, 89, 90, 91, 92, 95, 98, 1999 Free Software Foundation, Inc.
|
||||
Copyright 1986, 89, 90, 91, 92, 95, 1998 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@@ -34,7 +34,6 @@ static void breakpoint_changed PARAMS ((struct breakpoint *));
|
||||
void (*annotate_starting_hook) PARAMS ((void));
|
||||
void (*annotate_stopped_hook) PARAMS ((void));
|
||||
void (*annotate_signalled_hook) PARAMS ((void));
|
||||
void (*annotate_signal_hook) PARAMS ((void));
|
||||
void (*annotate_exited_hook) PARAMS ((void));
|
||||
|
||||
static void
|
||||
@@ -162,9 +161,6 @@ annotate_signal_string_end ()
|
||||
void
|
||||
annotate_signal ()
|
||||
{
|
||||
if (annotate_signal_hook)
|
||||
annotate_signal_hook ();
|
||||
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032signal\n");
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Annotation routines for GDB.
|
||||
Copyright 1986, 1989, 1990, 1991, 1992, 1999 Free Software Foundation, Inc.
|
||||
Copyright 1986, 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@@ -101,5 +101,4 @@ extern void annotate_array_section_end PARAMS ((void));
|
||||
extern void (*annotate_starting_hook) PARAMS ((void));
|
||||
extern void (*annotate_stopped_hook) PARAMS ((void));
|
||||
extern void (*annotate_signalled_hook) PARAMS ((void));
|
||||
extern void (*annotate_signal_hook) PARAMS ((void));
|
||||
extern void (*annotate_exited_hook) PARAMS ((void));
|
||||
|
||||
@@ -234,7 +234,7 @@ arc_get_frame_setup (pc)
|
||||
/* This sequence is used to get the address of the return
|
||||
buffer for a function that returns a structure. */
|
||||
insn = codestream_peek ();
|
||||
if ((insn & OPMASK) == 0x60000000)
|
||||
if (insn & OPMASK == 0x60000000)
|
||||
codestream_get ();
|
||||
}
|
||||
/* Frameless fn. */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Target-dependent code for the Acorn Risc Machine (ARM).
|
||||
Copyright (C) 1988, 1989, 1991, 1992, 1993, 1995-1999
|
||||
/* Target-dependent code for the Acorn Risc Machine, for GDB, the GNU Debugger.
|
||||
Copyright (C) 1988, 1989, 1991, 1992, 1993, 1995, 1996, 1998, 1999
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
@@ -479,7 +479,7 @@ arm_scan_prologue (fi)
|
||||
{
|
||||
/* Get address of the stmfd in the prologue of the callee; the saved
|
||||
PC is the address of the stmfd + 12. */
|
||||
prologue_start = ADDR_BITS_REMOVE(read_memory_integer (fi->frame, 4)) - 12;
|
||||
prologue_start = (read_memory_integer (fi->frame, 4) & 0x03fffffc) - 12;
|
||||
prologue_end = prologue_start + 40; /* FIXME: should be big enough */
|
||||
}
|
||||
|
||||
@@ -974,16 +974,14 @@ arm_pop_frame ()
|
||||
{
|
||||
struct frame_info *frame = get_current_frame();
|
||||
int regnum;
|
||||
CORE_ADDR old_SP;
|
||||
|
||||
old_SP = read_register (frame->framereg);
|
||||
for (regnum = 0; regnum < NUM_REGS; regnum++)
|
||||
if (frame->fsr.regs[regnum] != 0)
|
||||
write_register (regnum,
|
||||
read_memory_integer (frame->fsr.regs[regnum], 4));
|
||||
|
||||
write_register (PC_REGNUM, FRAME_SAVED_PC (frame));
|
||||
write_register (SP_REGNUM, old_SP);
|
||||
write_register (SP_REGNUM, read_register (frame->framereg));
|
||||
|
||||
flush_cached_frames ();
|
||||
}
|
||||
|
||||
@@ -161,6 +161,7 @@ core_file_command (filename, from_tty)
|
||||
int from_tty;
|
||||
{
|
||||
int val;
|
||||
extern char registers[];
|
||||
|
||||
/* Discard all vestiges of any previous core file
|
||||
and mark data and stack spaces as empty. */
|
||||
|
||||
@@ -17,6 +17,8 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
#include "defs.h"
|
||||
#include "symtab.h"
|
||||
#include "symfile.h"
|
||||
|
||||
@@ -17,6 +17,8 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
#ifndef AX_GDB_H
|
||||
#define AX_GDB_H
|
||||
|
||||
|
||||
@@ -17,6 +17,8 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Despite what the above comment says about this file being part of
|
||||
GDB, we would like to keep these functions free of GDB
|
||||
dependencies, since we want to be able to use them in contexts
|
||||
@@ -25,8 +27,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "defs.h"
|
||||
#include "ax.h"
|
||||
|
||||
#include "value.h"
|
||||
|
||||
|
||||
/* Functions for building expressions. */
|
||||
|
||||
|
||||
2
gdb/ax.h
2
gdb/ax.h
@@ -17,6 +17,8 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
#ifndef AGENTEXPR_H
|
||||
#define AGENTEXPR_H
|
||||
|
||||
|
||||
@@ -138,6 +138,8 @@ bcache (bytes, count, bcachep)
|
||||
return (location);
|
||||
}
|
||||
|
||||
#if MAINTENANCE_CMDS
|
||||
|
||||
void
|
||||
print_bcache_statistics (bcachep, id)
|
||||
struct bcache *bcachep;
|
||||
@@ -213,3 +215,5 @@ print_bcache_statistics (bcachep, id)
|
||||
}
|
||||
printf_filtered (" Maximum chain length %d at %d:%d\n", lmax, lmaxt, lmaxh);
|
||||
}
|
||||
|
||||
#endif /* MAINTENANCE_CMDS */
|
||||
|
||||
@@ -62,7 +62,11 @@ struct bcache {
|
||||
extern void *
|
||||
bcache PARAMS ((void *bytes, int count, struct bcache *bcachep));
|
||||
|
||||
#if MAINTENANCE_CMDS
|
||||
|
||||
extern void
|
||||
print_bcache_statistics PARAMS ((struct bcache *, char *));
|
||||
|
||||
#endif /* MAINTENANCE_CMDS */
|
||||
|
||||
#endif /* BCACHE_H */
|
||||
|
||||
142
gdb/blockframe.c
142
gdb/blockframe.c
@@ -88,14 +88,13 @@ inside_entry_file (addr)
|
||||
return 1;
|
||||
if (symfile_objfile == 0)
|
||||
return 0;
|
||||
if (CALL_DUMMY_LOCATION == AT_ENTRY_POINT)
|
||||
{
|
||||
/* Do not stop backtracing if the pc is in the call dummy
|
||||
at the entry point. */
|
||||
/* FIXME: Won't always work with zeros for the last two arguments */
|
||||
if (PC_IN_CALL_DUMMY (addr, 0, 0))
|
||||
return 0;
|
||||
}
|
||||
#if CALL_DUMMY_LOCATION == AT_ENTRY_POINT
|
||||
/* Do not stop backtracing if the pc is in the call dummy
|
||||
at the entry point. */
|
||||
/* FIXME: Won't always work with zeros for the last two arguments */
|
||||
if (PC_IN_CALL_DUMMY (addr, 0, 0))
|
||||
return 0;
|
||||
#endif
|
||||
return (addr >= symfile_objfile -> ei.entry_file_lowpc &&
|
||||
addr < symfile_objfile -> ei.entry_file_highpc);
|
||||
}
|
||||
@@ -149,20 +148,19 @@ CORE_ADDR pc;
|
||||
|
||||
int
|
||||
inside_entry_func (pc)
|
||||
CORE_ADDR pc;
|
||||
CORE_ADDR pc;
|
||||
{
|
||||
if (pc == 0)
|
||||
return 1;
|
||||
if (symfile_objfile == 0)
|
||||
return 0;
|
||||
if (CALL_DUMMY_LOCATION == AT_ENTRY_POINT)
|
||||
{
|
||||
/* Do not stop backtracing if the pc is in the call dummy
|
||||
at the entry point. */
|
||||
/* FIXME: Won't always work with zeros for the last two arguments */
|
||||
if (PC_IN_CALL_DUMMY (pc, 0, 0))
|
||||
return 0;
|
||||
}
|
||||
#if CALL_DUMMY_LOCATION == AT_ENTRY_POINT
|
||||
/* Do not stop backtracing if the pc is in the call dummy
|
||||
at the entry point. */
|
||||
/* FIXME: Won't always work with zeros for the last two arguments */
|
||||
if (PC_IN_CALL_DUMMY (pc, 0, 0))
|
||||
return 0;
|
||||
#endif
|
||||
return (symfile_objfile -> ei.entry_func_lowpc <= pc &&
|
||||
symfile_objfile -> ei.entry_func_highpc > pc);
|
||||
}
|
||||
@@ -247,6 +245,16 @@ create_new_frame (addr, pc)
|
||||
return fi;
|
||||
}
|
||||
|
||||
/* Return the frame that called FI.
|
||||
If FI is the original frame (it has no caller), return 0. */
|
||||
|
||||
struct frame_info *
|
||||
get_prev_frame (frame)
|
||||
struct frame_info *frame;
|
||||
{
|
||||
return get_prev_frame_info (frame);
|
||||
}
|
||||
|
||||
/* Return the frame that FRAME calls (NULL if FRAME is the innermost
|
||||
frame). */
|
||||
|
||||
@@ -344,7 +352,7 @@ frameless_look_for_prologue (frame)
|
||||
if there is no such frame. */
|
||||
|
||||
struct frame_info *
|
||||
get_prev_frame (next_frame)
|
||||
get_prev_frame_info (next_frame)
|
||||
struct frame_info *next_frame;
|
||||
{
|
||||
CORE_ADDR address = 0;
|
||||
@@ -1026,72 +1034,7 @@ sigtramp_saved_pc (frame)
|
||||
}
|
||||
#endif /* SIGCONTEXT_PC_OFFSET */
|
||||
|
||||
|
||||
/* Are we in a call dummy? The code below which allows DECR_PC_AFTER_BREAK
|
||||
below is for infrun.c, which may give the macro a pc without that
|
||||
subtracted out. */
|
||||
|
||||
extern CORE_ADDR text_end;
|
||||
|
||||
int
|
||||
pc_in_call_dummy_before_text_end (pc, sp, frame_address)
|
||||
CORE_ADDR pc;
|
||||
CORE_ADDR sp;
|
||||
CORE_ADDR frame_address;
|
||||
{
|
||||
return ((pc) >= text_end - CALL_DUMMY_LENGTH
|
||||
&& (pc) <= text_end + DECR_PC_AFTER_BREAK);
|
||||
}
|
||||
|
||||
int
|
||||
pc_in_call_dummy_after_text_end (pc, sp, frame_address)
|
||||
CORE_ADDR pc;
|
||||
CORE_ADDR sp;
|
||||
CORE_ADDR frame_address;
|
||||
{
|
||||
return ((pc) >= text_end
|
||||
&& (pc) <= text_end + CALL_DUMMY_LENGTH + DECR_PC_AFTER_BREAK);
|
||||
}
|
||||
|
||||
/* Is the PC in a call dummy? SP and FRAME_ADDRESS are the bottom and
|
||||
top of the stack frame which we are checking, where "bottom" and
|
||||
"top" refer to some section of memory which contains the code for
|
||||
the call dummy. Calls to this macro assume that the contents of
|
||||
SP_REGNUM and FP_REGNUM (or the saved values thereof), respectively,
|
||||
are the things to pass.
|
||||
|
||||
This won't work on the 29k, where SP_REGNUM and FP_REGNUM don't
|
||||
have that meaning, but the 29k doesn't use ON_STACK. This could be
|
||||
fixed by generalizing this scheme, perhaps by passing in a frame
|
||||
and adding a few fields, at least on machines which need them for
|
||||
PC_IN_CALL_DUMMY.
|
||||
|
||||
Something simpler, like checking for the stack segment, doesn't work,
|
||||
since various programs (threads implementations, gcc nested function
|
||||
stubs, etc) may either allocate stack frames in another segment, or
|
||||
allocate other kinds of code on the stack. */
|
||||
|
||||
int
|
||||
pc_in_call_dummy_on_stack (pc, sp, frame_address)
|
||||
CORE_ADDR pc;
|
||||
CORE_ADDR sp;
|
||||
CORE_ADDR frame_address;
|
||||
{
|
||||
return (INNER_THAN ((sp), (pc))
|
||||
&& (frame_address != 0)
|
||||
&& INNER_THAN ((pc), (frame_address)));
|
||||
}
|
||||
|
||||
int
|
||||
pc_in_call_dummy_at_entry_point (pc, sp, frame_address)
|
||||
CORE_ADDR pc;
|
||||
CORE_ADDR sp;
|
||||
CORE_ADDR frame_address;
|
||||
{
|
||||
return ((pc) >= CALL_DUMMY_ADDRESS ()
|
||||
&& (pc) <= (CALL_DUMMY_ADDRESS () + DECR_PC_AFTER_BREAK));
|
||||
}
|
||||
|
||||
#ifdef USE_GENERIC_DUMMY_FRAMES
|
||||
|
||||
/*
|
||||
* GENERIC DUMMY FRAMES
|
||||
@@ -1110,20 +1053,6 @@ pc_in_call_dummy_at_entry_point (pc, sp, frame_address)
|
||||
* being executed by the target. Also FRAME_CHAIN_VALID as
|
||||
* generic_frame_chain_valid. */
|
||||
|
||||
/* Dummy frame. This saves the processor state just prior to setting
|
||||
up the inferior function call. Older targets save the registers
|
||||
target stack (but that really slows down function calls). */
|
||||
|
||||
struct dummy_frame
|
||||
{
|
||||
struct dummy_frame *next;
|
||||
|
||||
CORE_ADDR pc;
|
||||
CORE_ADDR fp;
|
||||
CORE_ADDR sp;
|
||||
char *registers;
|
||||
};
|
||||
|
||||
static struct dummy_frame *dummy_frame_stack = NULL;
|
||||
|
||||
/* Function: find_dummy_frame(pc, fp, sp)
|
||||
@@ -1144,7 +1073,7 @@ generic_find_dummy_frame (pc, fp)
|
||||
dummyframe = dummyframe->next)
|
||||
if (fp == dummyframe->fp || fp == dummyframe->sp)
|
||||
/* The frame in question lies between the saved fp and sp, inclusive */
|
||||
return dummyframe->registers;
|
||||
return dummyframe->regs;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1153,14 +1082,12 @@ generic_find_dummy_frame (pc, fp)
|
||||
Return true if this is a dummy frame created by gdb for an inferior call */
|
||||
|
||||
int
|
||||
generic_pc_in_call_dummy (pc, sp, fp)
|
||||
generic_pc_in_call_dummy (pc, fp)
|
||||
CORE_ADDR pc;
|
||||
CORE_ADDR sp;
|
||||
CORE_ADDR fp;
|
||||
{
|
||||
/* if find_dummy_frame succeeds, then PC is in a call dummy */
|
||||
/* Note: SP and not FP is passed on. */
|
||||
return (generic_find_dummy_frame (pc, sp) != 0);
|
||||
return (generic_find_dummy_frame (pc, fp) != 0);
|
||||
}
|
||||
|
||||
/* Function: read_register_dummy
|
||||
@@ -1210,12 +1137,10 @@ generic_push_dummy_frame ()
|
||||
dummy_frame = dummy_frame->next;
|
||||
|
||||
dummy_frame = xmalloc (sizeof (struct dummy_frame));
|
||||
dummy_frame->registers = xmalloc (REGISTER_BYTES);
|
||||
|
||||
dummy_frame->pc = read_register (PC_REGNUM);
|
||||
dummy_frame->sp = read_register (SP_REGNUM);
|
||||
dummy_frame->fp = fp;
|
||||
read_register_bytes (0, dummy_frame->registers, REGISTER_BYTES);
|
||||
read_register_bytes (0, dummy_frame->regs, REGISTER_BYTES);
|
||||
dummy_frame->next = dummy_frame_stack;
|
||||
dummy_frame_stack = dummy_frame;
|
||||
}
|
||||
@@ -1249,10 +1174,8 @@ generic_pop_dummy_frame ()
|
||||
if (!dummy_frame)
|
||||
error ("Can't pop dummy frame!");
|
||||
dummy_frame_stack = dummy_frame->next;
|
||||
write_register_bytes (0, dummy_frame->registers, REGISTER_BYTES);
|
||||
write_register_bytes (0, dummy_frame->regs, REGISTER_BYTES);
|
||||
flush_cached_frames ();
|
||||
|
||||
free (dummy_frame->registers);
|
||||
free (dummy_frame);
|
||||
}
|
||||
|
||||
@@ -1369,6 +1292,7 @@ generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
|
||||
if (raw_buffer)
|
||||
read_register_gen (regnum, raw_buffer);
|
||||
}
|
||||
#endif /* USE_GENERIC_DUMMY_FRAMES */
|
||||
|
||||
void
|
||||
_initialize_blockframe ()
|
||||
|
||||
126
gdb/breakpoint.c
126
gdb/breakpoint.c
@@ -88,14 +88,9 @@ watch_command PARAMS ((char *, int));
|
||||
static int
|
||||
can_use_hardware_watchpoint PARAMS ((struct value *));
|
||||
|
||||
static void break_at_finish_command PARAMS ((char *, int));
|
||||
static void break_at_finish_at_depth_command PARAMS ((char *, int));
|
||||
|
||||
void
|
||||
tbreak_command PARAMS ((char *, int));
|
||||
|
||||
static void tbreak_at_finish_command PARAMS ((char *, int));
|
||||
|
||||
static void
|
||||
break_command_1 PARAMS ((char *, int, int));
|
||||
|
||||
@@ -187,36 +182,6 @@ static void awatch_command PARAMS ((char *, int));
|
||||
|
||||
static void do_enable_breakpoint PARAMS ((struct breakpoint *, enum bpdisp));
|
||||
|
||||
static void create_solib_load_unload_event_breakpoint PARAMS ((char *hookname, int tempflag, char *dll_pathname, char *cond_string, enum bptype bp_kind));
|
||||
|
||||
static void create_fork_vfork_event_catchpoint PARAMS ((int tempflag, char * cond_string, enum bptype bp_kind));
|
||||
|
||||
static void break_at_finish_at_depth_command_1 PARAMS ((char *arg, int flag, int from_tty));
|
||||
|
||||
static void break_at_finish_command_1 PARAMS ((char *arg, int flag, int from_tty));
|
||||
|
||||
static void stop_command PARAMS ((char *arg, int from_tty));
|
||||
|
||||
static void stopin_command PARAMS ((char *arg, int from_tty));
|
||||
|
||||
static void stopat_command PARAMS ((char *arg, int from_tty));
|
||||
|
||||
static char *ep_find_event_name_end PARAMS ((char *arg));
|
||||
|
||||
static char *ep_parse_optional_if_clause PARAMS ((char **arg));
|
||||
|
||||
static char *ep_parse_optional_filename PARAMS ((char **arg));
|
||||
|
||||
static void catch_exec_command_1 PARAMS ((char *arg, int tempflag, int from_tty));
|
||||
|
||||
static void create_exception_catchpoint PARAMS ((int tempflag, char *cond_string, enum exception_event_kind ex_event, struct symtab_and_line *sal));
|
||||
|
||||
static void catch_exception_command_1 PARAMS ((enum exception_event_kind ex_event, char *arg, int tempflag, int from_tty));
|
||||
|
||||
static void tcatch_command PARAMS ((char *arg, int from_tty));
|
||||
|
||||
static void ep_skip_leading_whitespace PARAMS ((char **s));
|
||||
|
||||
/* Prototypes for exported functions. */
|
||||
|
||||
static void
|
||||
@@ -1362,26 +1327,29 @@ int
|
||||
frame_in_dummy (frame)
|
||||
struct frame_info *frame;
|
||||
{
|
||||
#ifdef CALL_DUMMY
|
||||
#ifdef USE_GENERIC_DUMMY_FRAMES
|
||||
return generic_pc_in_call_dummy (frame->pc, frame->frame);
|
||||
#else
|
||||
struct breakpoint *b;
|
||||
|
||||
if (! CALL_DUMMY_P)
|
||||
return 0;
|
||||
|
||||
if (USE_GENERIC_DUMMY_FRAMES)
|
||||
return generic_pc_in_call_dummy (frame->pc, frame->frame, frame->frame);
|
||||
|
||||
ALL_BREAKPOINTS (b)
|
||||
{
|
||||
static ULONGEST dummy[] = CALL_DUMMY;
|
||||
|
||||
if (b->type == bp_call_dummy
|
||||
&& b->frame == frame->frame
|
||||
|
||||
/* We need to check the PC as well as the frame on the sparc,
|
||||
for signals.exp in the testsuite. */
|
||||
&& (frame->pc
|
||||
>= (b->address
|
||||
- SIZEOF_CALL_DUMMY_WORDS / sizeof (LONGEST) * REGISTER_SIZE))
|
||||
- sizeof (dummy) / sizeof (LONGEST) * REGISTER_SIZE))
|
||||
&& frame->pc <= b->address)
|
||||
return 1;
|
||||
}
|
||||
#endif /* GENERIC_DUMMY_FRAMES */
|
||||
#endif /* CALL_DUMMY */
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2964,8 +2932,10 @@ breakpoints_info (bnum_exp, from_tty)
|
||||
breakpoint_1 (bnum, 0);
|
||||
}
|
||||
|
||||
#if MAINTENANCE_CMDS
|
||||
|
||||
/* ARGSUSED */
|
||||
static void
|
||||
void
|
||||
maintenance_info_breakpoints (bnum_exp, from_tty)
|
||||
char *bnum_exp;
|
||||
int from_tty;
|
||||
@@ -2978,6 +2948,8 @@ maintenance_info_breakpoints (bnum_exp, from_tty)
|
||||
breakpoint_1 (bnum, 1);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* Print a message describing any breakpoints set at PC. */
|
||||
|
||||
static void
|
||||
@@ -3269,11 +3241,11 @@ re_enable_breakpoints_in_shlibs ()
|
||||
|
||||
static void
|
||||
create_solib_load_unload_event_breakpoint (hookname, tempflag, dll_pathname, cond_string, bp_kind)
|
||||
char *hookname;
|
||||
int tempflag;
|
||||
char *dll_pathname;
|
||||
char *cond_string;
|
||||
enum bptype bp_kind;
|
||||
char * hookname;
|
||||
int tempflag;
|
||||
char * dll_pathname;
|
||||
char * cond_string;
|
||||
enum bptype bp_kind;
|
||||
{
|
||||
struct breakpoint * b;
|
||||
struct symtabs_and_lines sals;
|
||||
@@ -3379,9 +3351,9 @@ create_solib_unload_event_breakpoint (hookname, tempflag, dll_pathname, cond_str
|
||||
|
||||
static void
|
||||
create_fork_vfork_event_catchpoint (tempflag, cond_string, bp_kind)
|
||||
int tempflag;
|
||||
char *cond_string;
|
||||
enum bptype bp_kind;
|
||||
int tempflag;
|
||||
char * cond_string;
|
||||
enum bptype bp_kind;
|
||||
{
|
||||
struct symtab_and_line sal;
|
||||
struct breakpoint * b;
|
||||
@@ -4120,7 +4092,7 @@ break_command (arg, from_tty)
|
||||
break_command_1 (arg, 0, from_tty);
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
break_at_finish_command (arg, from_tty)
|
||||
char *arg;
|
||||
int from_tty;
|
||||
@@ -4128,7 +4100,7 @@ break_at_finish_command (arg, from_tty)
|
||||
break_at_finish_command_1 (arg, 0, from_tty);
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
break_at_finish_at_depth_command (arg, from_tty)
|
||||
char *arg;
|
||||
int from_tty;
|
||||
@@ -4144,7 +4116,7 @@ tbreak_command (arg, from_tty)
|
||||
break_command_1 (arg, BP_TEMPFLAG, from_tty);
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
tbreak_at_finish_command (arg, from_tty)
|
||||
char *arg;
|
||||
int from_tty;
|
||||
@@ -4559,7 +4531,6 @@ struct sal_chain
|
||||
struct symtab_and_line sal;
|
||||
};
|
||||
|
||||
#if 0
|
||||
/* Not really used -- invocation in handle_gnu_4_16_catch_command
|
||||
had been commented out in the v.4.16 sources, and stays
|
||||
disabled there now because "catch NAME" syntax isn't allowed.
|
||||
@@ -4623,7 +4594,6 @@ map_catch_names (args, function)
|
||||
while (*p == ' ' || *p == '\t') p++;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* This shares a lot of code with `print_frame_label_vars' from stack.c. */
|
||||
|
||||
@@ -4741,7 +4711,7 @@ get_catch_sals (this_level_only)
|
||||
|
||||
static void
|
||||
ep_skip_leading_whitespace (s)
|
||||
char **s;
|
||||
char ** s;
|
||||
{
|
||||
if ((s == NULL) || (*s == NULL))
|
||||
return;
|
||||
@@ -4755,7 +4725,7 @@ ep_skip_leading_whitespace (s)
|
||||
the token is returned. Else, NULL is returned. */
|
||||
static char *
|
||||
ep_find_event_name_end (arg)
|
||||
char *arg;
|
||||
char * arg;
|
||||
{
|
||||
char * s = arg;
|
||||
char * event_name_end = NULL;
|
||||
@@ -4788,7 +4758,7 @@ ep_find_event_name_end (arg)
|
||||
if clause in the arg string. */
|
||||
static char *
|
||||
ep_parse_optional_if_clause (arg)
|
||||
char **arg;
|
||||
char ** arg;
|
||||
{
|
||||
char * cond_string;
|
||||
|
||||
@@ -4821,7 +4791,7 @@ ep_parse_optional_if_clause (arg)
|
||||
future access should copy it to their own buffers. */
|
||||
static char *
|
||||
ep_parse_optional_filename (arg)
|
||||
char **arg;
|
||||
char ** arg;
|
||||
{
|
||||
static char filename [1024];
|
||||
char * arg_p = *arg;
|
||||
@@ -4851,14 +4821,12 @@ ep_parse_optional_filename (arg)
|
||||
|
||||
typedef enum {catch_fork, catch_vfork} catch_fork_kind;
|
||||
|
||||
static void catch_fork_command_1 PARAMS ((catch_fork_kind fork_kind, char *arg, int tempflag, int from_tty));
|
||||
|
||||
static void
|
||||
catch_fork_command_1 (fork_kind, arg, tempflag, from_tty)
|
||||
catch_fork_kind fork_kind;
|
||||
char *arg;
|
||||
int tempflag;
|
||||
int from_tty;
|
||||
catch_fork_kind fork_kind;
|
||||
char * arg;
|
||||
int tempflag;
|
||||
int from_tty;
|
||||
{
|
||||
char * cond_string = NULL;
|
||||
|
||||
@@ -4891,9 +4859,9 @@ catch_fork_command_1 (fork_kind, arg, tempflag, from_tty)
|
||||
|
||||
static void
|
||||
catch_exec_command_1 (arg, tempflag, from_tty)
|
||||
char *arg;
|
||||
int tempflag;
|
||||
int from_tty;
|
||||
char * arg;
|
||||
int tempflag;
|
||||
int from_tty;
|
||||
{
|
||||
char * cond_string = NULL;
|
||||
|
||||
@@ -5011,10 +4979,10 @@ catch_unload_command_1 (arg, tempflag, from_tty)
|
||||
|
||||
static void
|
||||
create_exception_catchpoint (tempflag, cond_string, ex_event, sal)
|
||||
int tempflag;
|
||||
char *cond_string;
|
||||
enum exception_event_kind ex_event;
|
||||
struct symtab_and_line *sal;
|
||||
int tempflag;
|
||||
char * cond_string;
|
||||
enum exception_event_kind ex_event;
|
||||
struct symtab_and_line * sal;
|
||||
{
|
||||
struct breakpoint * b;
|
||||
int i;
|
||||
@@ -5052,10 +5020,10 @@ create_exception_catchpoint (tempflag, cond_string, ex_event, sal)
|
||||
|
||||
static void
|
||||
catch_exception_command_1 (ex_event, arg, tempflag, from_tty)
|
||||
enum exception_event_kind ex_event;
|
||||
char *arg;
|
||||
int tempflag;
|
||||
int from_tty;
|
||||
enum exception_event_kind ex_event;
|
||||
char * arg;
|
||||
int tempflag;
|
||||
int from_tty;
|
||||
{
|
||||
char * cond_string = NULL;
|
||||
struct symtab_and_line * sal = NULL;
|
||||
@@ -6619,6 +6587,8 @@ are set to the address of the last breakpoint listed.\n\n\
|
||||
Convenience variable \"$bpnum\" contains the number of the last\n\
|
||||
breakpoint set.", NULL));
|
||||
|
||||
#if MAINTENANCE_CMDS
|
||||
|
||||
add_cmd ("breakpoints", class_maintenance, maintenance_info_breakpoints,
|
||||
concat ("Status of all breakpoints, or breakpoint number NUMBER.\n\
|
||||
The \"Type\" column indicates one of:\n\
|
||||
@@ -6638,6 +6608,8 @@ Convenience variable \"$bpnum\" contains the number of the last\n\
|
||||
breakpoint set.", NULL),
|
||||
&maintenanceinfolist);
|
||||
|
||||
#endif /* MAINTENANCE_CMDS */
|
||||
|
||||
add_com ("catch", class_breakpoint, catch_command,
|
||||
"Set catchpoints to catch events.\n\
|
||||
Raised signals may be caught:\n\
|
||||
|
||||
@@ -112,7 +112,6 @@ enum bptype {
|
||||
commands for C++ exception handling. */
|
||||
bp_catch_catch,
|
||||
bp_catch_throw
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
2796
gdb/c-exp.tab.c
Normal file
2796
gdb/c-exp.tab.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -913,7 +913,7 @@ c_type_print_base (type, stream, show, level)
|
||||
char *p;
|
||||
char *demangled_no_class = demangled_name;
|
||||
|
||||
while ((p = strchr (demangled_no_class, ':')))
|
||||
while (p = strchr (demangled_no_class, ':'))
|
||||
{
|
||||
demangled_no_class = p;
|
||||
if (*++demangled_no_class == ':')
|
||||
|
||||
@@ -84,6 +84,21 @@ static CORE_ADDR current_source_end_addr;
|
||||
static bfd *nlist_bfd_global;
|
||||
static int nlist_nsyms_global;
|
||||
|
||||
/* Vector of line number information. */
|
||||
|
||||
static struct linetable *line_vector;
|
||||
|
||||
/* Index of next entry to go in line_vector_index. */
|
||||
|
||||
static int line_vector_index;
|
||||
|
||||
/* Last line number recorded in the line vector. */
|
||||
|
||||
static int prev_line_number;
|
||||
|
||||
/* Number of elements allocated for line_vector currently. */
|
||||
|
||||
static int line_vector_length;
|
||||
|
||||
/* Pointers to scratch storage, used for reading raw symbols and auxents. */
|
||||
|
||||
@@ -237,6 +252,8 @@ static void complete_symtab PARAMS ((char *, CORE_ADDR, unsigned int));
|
||||
|
||||
static void coff_start_symtab PARAMS ((char *));
|
||||
|
||||
static void coff_record_line PARAMS ((int, CORE_ADDR));
|
||||
|
||||
static struct type *coff_alloc_type PARAMS ((int));
|
||||
|
||||
static struct type **coff_lookup_type PARAMS ((int));
|
||||
@@ -423,6 +440,30 @@ coff_alloc_type (index)
|
||||
return type;
|
||||
}
|
||||
|
||||
/* Record a line number entry for line LINE at address PC.
|
||||
FIXME: Use record_line instead. */
|
||||
|
||||
static void
|
||||
coff_record_line (line, pc)
|
||||
int line;
|
||||
CORE_ADDR pc;
|
||||
{
|
||||
struct linetable_entry *e;
|
||||
/* Make sure line vector is big enough. */
|
||||
|
||||
if (line_vector_index + 2 >= line_vector_length)
|
||||
{
|
||||
line_vector_length *= 2;
|
||||
line_vector = (struct linetable *)
|
||||
xrealloc ((char *) line_vector, sizeof (struct linetable)
|
||||
+ (line_vector_length
|
||||
* sizeof (struct linetable_entry)));
|
||||
}
|
||||
|
||||
e = line_vector->item + line_vector_index++;
|
||||
e->line = line; e->pc = pc;
|
||||
}
|
||||
|
||||
/* Start a new symtab for a new source file.
|
||||
This is called when a COFF ".file" symbol is seen;
|
||||
it indicates the start of data for one original source file. */
|
||||
@@ -443,6 +484,17 @@ coff_start_symtab (name)
|
||||
last_source_start_addr in coff_end_symtab. */
|
||||
0);
|
||||
record_debugformat ("COFF");
|
||||
|
||||
/* Initialize the source file line number information for this file. */
|
||||
|
||||
if (line_vector) /* Unlikely, but maybe possible? */
|
||||
free ((PTR)line_vector);
|
||||
line_vector_index = 0;
|
||||
line_vector_length = 1000;
|
||||
prev_line_number = -2; /* Force first line number to be explicit */
|
||||
line_vector = (struct linetable *)
|
||||
xmalloc (sizeof (struct linetable)
|
||||
+ line_vector_length * sizeof (struct linetable_entry));
|
||||
}
|
||||
|
||||
/* Save the vital information from when starting to read a file,
|
||||
@@ -483,12 +535,26 @@ coff_end_symtab (objfile)
|
||||
|
||||
last_source_start_addr = current_source_start_addr;
|
||||
|
||||
/* For no good reason, this file stores the number of entries in a
|
||||
separate variable instead of in line_vector->nitems. Fix it. */
|
||||
if (line_vector)
|
||||
line_vector->nitems = line_vector_index;
|
||||
|
||||
/* For COFF, we only have one subfile, so we can just look at
|
||||
subfiles and not worry about there being other elements in the
|
||||
chain. We fill in various fields now because we didn't know them
|
||||
before (or because doing it now is simply an artifact of how this
|
||||
file used to be written). */
|
||||
subfiles->line_vector = line_vector;
|
||||
|
||||
symtab = end_symtab (current_source_end_addr, objfile, 0);
|
||||
|
||||
if (symtab != NULL)
|
||||
free_named_symtabs (symtab->filename);
|
||||
|
||||
/* Reinitialize for beginning of new file. */
|
||||
line_vector = 0;
|
||||
line_vector_length = -1;
|
||||
last_source_file = NULL;
|
||||
}
|
||||
|
||||
@@ -617,6 +683,7 @@ coff_symfile_read (objfile, section_offsets, mainline)
|
||||
|
||||
/* Set a few file-statics that give us specific information about
|
||||
the particular COFF file format we're reading. */
|
||||
local_linesz = cdata->local_linesz;
|
||||
local_n_btmask = cdata->local_n_btmask;
|
||||
local_n_btshft = cdata->local_n_btshft;
|
||||
local_n_tmask = cdata->local_n_tmask;
|
||||
@@ -1019,7 +1086,6 @@ coff_symtab_read (symtab_offset, nsyms, section_offsets, objfile)
|
||||
new->name =
|
||||
process_coff_symbol (&fcn_cs_saved, &fcn_aux_saved,
|
||||
section_offsets, objfile);
|
||||
record_line (current_subfile, fcn_first_line, cs->c_value);
|
||||
}
|
||||
else if (STREQ (cs->c_name, ".ef"))
|
||||
{
|
||||
@@ -1392,7 +1458,7 @@ enter_linenos (file_offset, first_line, last_line, section_offsets)
|
||||
rawptr += local_linesz;
|
||||
/* The next function, or the sentinel, will have L_LNNO32 zero; we exit. */
|
||||
if (L_LNNO32 (&lptr) && L_LNNO32 (&lptr) <= last_line)
|
||||
record_line (current_subfile, first_line + L_LNNO32 (&lptr),
|
||||
coff_record_line (first_line + L_LNNO32 (&lptr),
|
||||
lptr.l_addr.l_paddr
|
||||
+ ANOFFSET (section_offsets, SECT_OFF_TEXT));
|
||||
else
|
||||
|
||||
@@ -116,13 +116,6 @@
|
||||
size_t, and assorted other type changes. */
|
||||
#undef PROC_SERVICE_IS_OLD
|
||||
|
||||
/* If you want to specify a default CPU variant, define this to be its
|
||||
name, as a C string. */
|
||||
#undef TARGET_CPU_DEFAULT
|
||||
|
||||
/* Define if the simulator is being linked in. */
|
||||
#undef WITH_SIM
|
||||
|
||||
/* Set to true if the save_state_t structure is present */
|
||||
#define HAVE_STRUCT_SAVE_STATE_T 0
|
||||
|
||||
@@ -255,9 +248,6 @@
|
||||
/* Define if you have the <sys/reg.h> header file. */
|
||||
#undef HAVE_SYS_REG_H
|
||||
|
||||
/* Define if you have the <sys/select.h> header file. */
|
||||
#undef HAVE_SYS_SELECT_H
|
||||
|
||||
/* Define if you have the <sys/wait.h> header file. */
|
||||
#undef HAVE_SYS_WAIT_H
|
||||
|
||||
|
||||
@@ -429,7 +429,7 @@ long read_register_stack_integer ();
|
||||
|
||||
/* Because INIT_FRAME_PC gets passed fromleaf, that's where we init
|
||||
not only ->pc and ->frame, but all the extra stuff, when called from
|
||||
get_prev_frame, that is. */
|
||||
get_prev_frame_info, that is. */
|
||||
#define INIT_EXTRA_FRAME_INFO(fromleaf, fci) init_extra_frame_info(fci)
|
||||
void init_extra_frame_info ();
|
||||
|
||||
@@ -506,13 +506,7 @@ extern CORE_ADDR frame_locals_address ();
|
||||
/* Provide our own get_saved_register. HAVE_REGISTER_WINDOWS is insufficient
|
||||
because registers get renumbered on the a29k without getting saved. */
|
||||
|
||||
#ifdef __STDC__
|
||||
enum lval_type;
|
||||
struct frame_info;
|
||||
#endif
|
||||
void a29k_get_saved_register PARAMS ((char *raw_buffer, int *optimized, CORE_ADDR *addrp, struct frame_info *frame, int regnum, enum lval_type *lvalp));
|
||||
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
|
||||
a29k_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
|
||||
#define GET_SAVED_REGISTER
|
||||
|
||||
/* Call function stuff. */
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
/* Figure out where the longjmp will land. We expect that we have just entered
|
||||
longjmp and haven't yet setup the stack frame, so the args are still in the
|
||||
|
||||
@@ -110,7 +110,7 @@ alpha_saved_pc_after_call PARAMS ((struct frame_info *));
|
||||
"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
|
||||
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
|
||||
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23",\
|
||||
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "fpcr",\
|
||||
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31",\
|
||||
"pc", "vfp", \
|
||||
}
|
||||
|
||||
@@ -132,7 +132,6 @@ alpha_saved_pc_after_call PARAMS ((struct frame_info *));
|
||||
#define ZERO_REGNUM 31 /* Read-only register, always 0 */
|
||||
#define FP0_REGNUM 32 /* Floating point register 0 */
|
||||
#define FPA0_REGNUM 48 /* First float arg during a subr call */
|
||||
#define FPCR_REGNUM 63 /* Floating point control register */
|
||||
#define PC_REGNUM 64 /* Contains program counter */
|
||||
#define FP_REGNUM 65 /* Virtual frame pointer */
|
||||
|
||||
@@ -177,7 +176,7 @@ alpha_saved_pc_after_call PARAMS ((struct frame_info *));
|
||||
memory format is an integer with 4 bytes or less, as the representation
|
||||
of integers in floating point registers is different. */
|
||||
|
||||
#define REGISTER_CONVERTIBLE(N) ((N) >= FP0_REGNUM && (N) < FP0_REGNUM + 31)
|
||||
#define REGISTER_CONVERTIBLE(N) ((N) >= FP0_REGNUM && (N) < FP0_REGNUM + 32)
|
||||
|
||||
/* Convert data from raw format for register REGNUM in buffer FROM
|
||||
to virtual format with type TYPE in buffer TO. */
|
||||
@@ -199,7 +198,7 @@ alpha_register_convert_to_raw PARAMS ((struct type *, int, char *, char *));
|
||||
of data in register N. */
|
||||
|
||||
#define REGISTER_VIRTUAL_TYPE(N) \
|
||||
(((N) >= FP0_REGNUM && (N) < FP0_REGNUM+31) \
|
||||
(((N) >= FP0_REGNUM && (N) < FP0_REGNUM+32) \
|
||||
? builtin_type_double : builtin_type_long) \
|
||||
|
||||
/* Store the address of the place in which to copy the structure the
|
||||
|
||||
@@ -15,7 +15,7 @@ GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
#if !defined (HOST_BYTE_ORDER)
|
||||
#define HOST_BYTE_ORDER LITTLE_ENDIAN
|
||||
|
||||
@@ -15,7 +15,7 @@ GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
#if !defined (HOST_BYTE_ORDER)
|
||||
#define HOST_BYTE_ORDER LITTLE_ENDIAN
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Definitions to make GDB target for an ARM
|
||||
Copyright 1986-1989, 1991, 1993-1999 Free Software Foundation, Inc.
|
||||
Copyright 1986, 1987, 1989, 1991, 1993, 1997, 1998 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@@ -268,8 +268,7 @@ extern use_struct_convention_fn arm_use_struct_convention;
|
||||
the address in which a function should return its structure value,
|
||||
as a CORE_ADDR (or an expression that can be used as one). */
|
||||
|
||||
#define EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
|
||||
(extract_address ((PTR) (REGBUF), REGISTER_RAW_SIZE(0)))
|
||||
#define EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) (*(int *)(REGBUF))
|
||||
|
||||
/* Specify that for the native compiler variables for a particular
|
||||
lexical context are listed after the beginning LBRAC instead of
|
||||
|
||||
@@ -19,7 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Contributed by Martin Hunt, hunt@cygnus.com */
|
||||
|
||||
/* #define GDB_TARGET_IS_D10V - moved to gdbarch.h */
|
||||
#define GDB_TARGET_IS_D10V
|
||||
|
||||
/* Define the bit, byte, and word ordering of the machine. */
|
||||
|
||||
@@ -262,7 +262,7 @@ extern void d10v_frame_find_saved_regs PARAMS ((struct frame_info *, struct fram
|
||||
extern void d10v_pop_frame PARAMS ((struct frame_info *frame));
|
||||
#define POP_FRAME generic_pop_current_frame (d10v_pop_frame)
|
||||
|
||||
#define USE_GENERIC_DUMMY_FRAMES 1
|
||||
#define USE_GENERIC_DUMMY_FRAMES
|
||||
#define CALL_DUMMY {0}
|
||||
#define CALL_DUMMY_START_OFFSET (0)
|
||||
#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
|
||||
@@ -272,15 +272,15 @@ extern void d10v_pop_frame PARAMS ((struct frame_info *frame));
|
||||
extern CORE_ADDR d10v_push_return_address PARAMS ((CORE_ADDR pc, CORE_ADDR sp));
|
||||
#define PUSH_RETURN_ADDRESS(PC, SP) d10v_push_return_address (PC, SP)
|
||||
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP)
|
||||
/* #define PC_IN_CALL_DUMMY(pc, sp, frame_address) ( pc == IMEM_START + 4 ) */
|
||||
|
||||
#define PUSH_DUMMY_FRAME generic_push_dummy_frame ()
|
||||
|
||||
/* override the default get_saved_register function with one that
|
||||
takes account of generic CALL_DUMMY frames */
|
||||
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
|
||||
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
|
||||
#define GET_SAVED_REGISTER
|
||||
#define get_saved_register generic_get_saved_register
|
||||
|
||||
#define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \
|
||||
sp = d10v_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr))
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/* Parameters for execution on a Fujitsu FR30 processor.
|
||||
Copyright 1999, Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@@ -96,7 +95,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
extern void fr30_pop_frame PARAMS ((void));
|
||||
#define POP_FRAME fr30_pop_frame()
|
||||
|
||||
#define USE_GENERIC_DUMMY_FRAMES 1
|
||||
#define USE_GENERIC_DUMMY_FRAMES
|
||||
#define CALL_DUMMY {0}
|
||||
#define CALL_DUMMY_START_OFFSET (0)
|
||||
#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
|
||||
@@ -130,7 +129,7 @@ extern void fr30_pop_frame PARAMS ((void));
|
||||
#define STORE_STRUCT_RETURN(ADDR, SP) \
|
||||
{ write_register (RETVAL_REG, (ADDR)); }
|
||||
|
||||
#define FRAME_ARGS_ADDRESS(fi) ((fi)->frame)
|
||||
#define FRAME_ARGS_ADDRESS(fi) (fi->frame)
|
||||
#define FRAME_LOCALS_ADDRESS(fi) ((fi)->frame)
|
||||
|
||||
/* Return number of args passed to a frame.
|
||||
@@ -161,14 +160,11 @@ extern CORE_ADDR fr30_frame_saved_pc PARAMS ((struct frame_info *));
|
||||
extern CORE_ADDR fr30_skip_prologue PARAMS ((CORE_ADDR pc));
|
||||
#define SKIP_PROLOGUE(pc) pc = fr30_skip_prologue (pc)
|
||||
|
||||
/* Write into appropriate registers a function return value of type
|
||||
TYPE, given in virtual format. VALBUF is in the target byte order;
|
||||
it's typically the VALUE_CONTENTS of some struct value, and those
|
||||
are in the target's byte order. */
|
||||
extern void fr30_store_return_value PARAMS ((struct type *type, char *valbuf));
|
||||
/* Write into appropriate registers a function return value
|
||||
of type TYPE, given in virtual format. */
|
||||
|
||||
#define STORE_RETURN_VALUE(TYPE,VALBUF) \
|
||||
(fr30_store_return_value ((TYPE), (VALBUF)))
|
||||
write_register_bytes (0, VALBUF, TYPE_LENGTH (TYPE))
|
||||
|
||||
/* Put here the code to store, into a struct frame_saved_regs,
|
||||
the addresses of the saved registers of frame described by FRAME_INFO.
|
||||
@@ -215,7 +211,7 @@ fr30_push_arguments PARAMS ((int nargs, struct value **args, CORE_ADDR sp,
|
||||
#define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
|
||||
(SP) = fr30_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)
|
||||
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP)
|
||||
|
||||
/* Fujitsu's ABI requires all structs to be passed using a pointer.
|
||||
That is obviously not very efficient, so I am leaving the definitions
|
||||
@@ -234,12 +230,3 @@ fr30_push_arguments PARAMS ((int nargs, struct value **args, CORE_ADDR sp,
|
||||
#endif
|
||||
/* alway return struct by value by input pointer */
|
||||
#define USE_STRUCT_CONVENTION(GCC_P, TYPE) 1
|
||||
|
||||
/* The stack should always be aligned on a four-word boundary. */
|
||||
#define STACK_ALIGN(len) (((len) + 3) & ~3)
|
||||
|
||||
/* I think the comment about this in value_arg_coerce is wrong; this
|
||||
should be true on any system where you can rely on the prototyping
|
||||
information. When this is true, value_arg_coerce will promote
|
||||
floats to doubles iff the function is not prototyped. */
|
||||
#define COERCE_FLOAT_TO_DOUBLE 1
|
||||
|
||||
@@ -271,7 +271,7 @@ typedef unsigned short INSN_WORD;
|
||||
* CALL_DUMMY stuff:
|
||||
*/
|
||||
|
||||
#define USE_GENERIC_DUMMY_FRAMES 1
|
||||
#define USE_GENERIC_DUMMY_FRAMES
|
||||
#define CALL_DUMMY {0}
|
||||
#define CALL_DUMMY_LENGTH (0)
|
||||
#define CALL_DUMMY_ADDRESS() entry_point_address ()
|
||||
@@ -286,7 +286,7 @@ extern CORE_ADDR h8300_push_arguments PARAMS ((int nargs,
|
||||
CORE_ADDR struct_addr));
|
||||
extern CORE_ADDR h8300_push_return_address PARAMS ((CORE_ADDR, CORE_ADDR));
|
||||
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP)
|
||||
#define FIX_CALL_DUMMY(DUMMY, START_SP, FUNADDR, NARGS, ARGS, TYPE, GCCP)
|
||||
#define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
|
||||
(SP) = h8300_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)
|
||||
@@ -298,8 +298,6 @@ extern CORE_ADDR h8300_push_return_address PARAMS ((CORE_ADDR, CORE_ADDR));
|
||||
|
||||
/* override the standard get_saved_register function with
|
||||
one that takes account of generic CALL_DUMMY frames */
|
||||
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
|
||||
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
|
||||
|
||||
#define GET_SAVED_REGISTER
|
||||
|
||||
|
||||
|
||||
@@ -1,19 +1,8 @@
|
||||
# Host: Intel x86 running DJGPP
|
||||
# we don't need mmalloc on DJGPP
|
||||
MH_CFLAGS= -DNO_MMALLOC
|
||||
MMALLOC=
|
||||
MMALLOC_CFLAGS=
|
||||
|
||||
MH_CFLAGS=-D__GO32__ -D__MSDOS__
|
||||
XDEPFILES= go32-xdep.o
|
||||
XM_FILE= xm-go32.h
|
||||
XDEPFILES=
|
||||
|
||||
NAT_FILE= nm-go32.h
|
||||
NATDEPFILES= go32-nat.o
|
||||
|
||||
TERMCAP=
|
||||
HOST_IPC=
|
||||
HOST_IPC=-DDOS_IPC
|
||||
SER_HARDWIRE= ser-go32.o
|
||||
CC= gcc
|
||||
XM_CLIBS= -ldbg
|
||||
CC=i386-go32-gcc -O2 -fno-omit-frame-pointer
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
# Target: Intel 386 running DJGPP
|
||||
TDEPFILES= i386-tdep.o i387-tdep.o
|
||||
TM_FILE= tm-go32.h
|
||||
@@ -1,57 +0,0 @@
|
||||
/* Native definitions for Intel x86 running DJGPP.
|
||||
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define NO_PTRACE_H
|
||||
|
||||
#include "i386/nm-i386v.h"
|
||||
|
||||
#define TARGET_HAS_HARDWARE_WATCHPOINTS
|
||||
|
||||
#define TARGET_CAN_USE_HARDWARE_WATCHPOINT(type, cnt, ot) 1
|
||||
|
||||
/* After a watchpoint trap, the PC points to the instruction after the
|
||||
one that caused the trap. Therefore we don't need to step over it.
|
||||
But we do need to reset the status register to avoid another trap. */
|
||||
|
||||
#define HAVE_CONTINUABLE_WATCHPOINT
|
||||
|
||||
#define STOPPED_BY_WATCHPOINT(W) \
|
||||
go32_stopped_by_watchpoint (inferior_pid)
|
||||
|
||||
/* Use these macros for watchpoint insertion/removal. */
|
||||
|
||||
#define target_insert_watchpoint(addr, len, type) \
|
||||
go32_insert_watchpoint (inferior_pid, addr, len, 2)
|
||||
|
||||
#define target_remove_watchpoint(addr, len, type) \
|
||||
go32_remove_watchpoint (inferior_pid, addr, len)
|
||||
|
||||
#define target_insert_hw_breakpoint(addr, shadow) \
|
||||
go32_insert_hw_breakpoint(addr, shadow)
|
||||
|
||||
#define target_remove_hw_breakpoint(addr, shadow) \
|
||||
go32_remove_hw_breakpoint(addr, shadow)
|
||||
|
||||
#define DECR_PC_AFTER_HW_BREAK 0
|
||||
|
||||
#undef FLOAT_INFO
|
||||
#define FLOAT_INFO { i386_go32_float_info (); }
|
||||
|
||||
extern void i386_go32_float_info (void);
|
||||
|
||||
@@ -19,7 +19,7 @@ GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
/* Basically, its a lot like the older versions ... */
|
||||
#include "i386/nm-i386sco.h"
|
||||
|
||||
@@ -15,7 +15,7 @@ GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
#include "i386/tm-i386bsd.h"
|
||||
|
||||
|
||||
@@ -1,212 +0,0 @@
|
||||
/* Target-dependent definitions for Intel x86 running DJGPP.
|
||||
Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include "i386/tm-i386v.h"
|
||||
|
||||
/* Number of machine registers. */
|
||||
|
||||
#undef NUM_FREGS
|
||||
#define NUM_FREGS 15
|
||||
#undef NUM_REGS
|
||||
#define NUM_REGS (16+NUM_FREGS)
|
||||
|
||||
/* Initializer for an array of names of registers. There should be
|
||||
NUM_REGS strings in this initializer. */
|
||||
|
||||
/* The order of the first 8 registers must match the compiler's
|
||||
numbering scheme (which is the same as the 386 scheme). */
|
||||
|
||||
#undef REGISTER_NAMES
|
||||
#define REGISTER_NAMES { "eax", "ecx", "edx", "ebx", \
|
||||
"esp", "ebp", "esi", "edi", \
|
||||
"eip", "eflags","cs", "ss", \
|
||||
"ds", "es", "fs", "gs", \
|
||||
"st0", "st1", "st2", "st3", \
|
||||
"st4", "st5", "st6", "st7", \
|
||||
"fctrl","fstat", "ftag", "fcs", \
|
||||
"fopsel","fip", "fopoff" }
|
||||
|
||||
#undef FP_REGNUM
|
||||
#define FP_REGNUM 5 /* (ebp) Contains addr of stack frame */
|
||||
#undef SP_REGNUM
|
||||
#define SP_REGNUM 4 /* (usp) Contains address of top of stack */
|
||||
#undef PS_REGNUM
|
||||
#define PS_REGNUM 9 /* (ps) Contains processor status */
|
||||
#undef PC_REGNUM
|
||||
#define PC_REGNUM 8 /* (eip) Contains program counter */
|
||||
#undef FP0_REGNUM
|
||||
#define FP0_REGNUM 16 /* Floating point register 0 */
|
||||
#undef FPC_REGNUM
|
||||
#define FPC_REGNUM 24 /* 80387 control register */
|
||||
#undef FPCWD_REGNUM
|
||||
#define FPCWD_REGNUM FPC_REGNUM
|
||||
#undef FPSWD_REGNUM
|
||||
#define FPSWD_REGNUM 25 /* 80387 status register */
|
||||
#undef FPTWD_REGNUM
|
||||
#define FPTWD_REGNUM 26 /* 80387 tag register */
|
||||
#undef FPIPO_REGNUM
|
||||
#define FPIPO_REGNUM 29 /* 80387 instruction pointer offset reg */
|
||||
#undef FPIPS_REGNUM
|
||||
#define FPIPS_REGNUM 27 /* 80387 instruction pointer selector reg */
|
||||
#undef FPOOS_REGNUM
|
||||
#define FPOOS_REGNUM 30 /* 80387 operand pointer offset reg */
|
||||
#undef FPOPS_REGNUM
|
||||
#define FPOPS_REGNUM 28 /* 80387 operand pointer selector reg */
|
||||
|
||||
/* Total amount of space needed to store our copies of the machine's
|
||||
register state, the array `registers'. */
|
||||
|
||||
#undef REGISTER_BYTES
|
||||
#define REGISTER_BYTES (10*4 + 6*2 + 8*10 + 5*2 + 2*4)
|
||||
|
||||
/* Index within `registers' of the first byte of the space for
|
||||
register N. */
|
||||
|
||||
#undef REGISTER_BYTE
|
||||
#define REGBYTE_0 0
|
||||
#define REGBYTE_10 (REGBYTE_0+10*4)
|
||||
#define REGBYTE_16 (REGBYTE_10+6*2)
|
||||
#define REGBYTE_24 (REGBYTE_16+8*10)
|
||||
#define REGBYTE_29 (REGBYTE_24+5*2)
|
||||
#define REGISTER_BYTE(N) (((N) < 10) ? (N) * 4 : \
|
||||
(N) < 16 ? REGBYTE_10 +((N) - 10) * 2 : \
|
||||
(N) < 24 ? REGBYTE_16 +((N) - 16) * 10 : \
|
||||
(N) < 29 ? REGBYTE_24 +((N) - 24) * 2 : \
|
||||
REGBYTE_29 + ((N) - 29) * 4)
|
||||
|
||||
/* Number of bytes of storage in the actual machine representation
|
||||
for register N. */
|
||||
|
||||
#undef REGISTER_RAW_SIZE
|
||||
#define REGISTER_RAW_SIZE(N) ((N) < 10 ? 4 : (N) < 16 ? 2 : (N) < 24 ? 10 : \
|
||||
(N) < 29 ? 2 : 4)
|
||||
|
||||
/* Number of bytes of storage in the program's representation
|
||||
for register N. */
|
||||
|
||||
#undef REGISTER_VIRTUAL_SIZE
|
||||
#define REGISTER_VIRTUAL_SIZE(N) REGISTER_RAW_SIZE(N)
|
||||
|
||||
/* Largest value REGISTER_RAW_SIZE can have. */
|
||||
|
||||
#undef MAX_REGISTER_RAW_SIZE
|
||||
#define MAX_REGISTER_RAW_SIZE 10
|
||||
|
||||
/* Largest value REGISTER_VIRTUAL_SIZE can have. */
|
||||
|
||||
#undef MAX_REGISTER_VIRTUAL_SIZE
|
||||
#define MAX_REGISTER_VIRTUAL_SIZE 10
|
||||
|
||||
/* Nonzero if register N requires conversion
|
||||
from raw format to virtual format. */
|
||||
|
||||
#undef REGISTER_CONVERTIBLE
|
||||
#define REGISTER_CONVERTIBLE(N) ((N) < FP0_REGNUM ? 0 :\
|
||||
(N) < FPC_REGNUM ? 1 : 0)
|
||||
|
||||
/* The host and target are i386 machines and the compiler supports
|
||||
long doubles. Long doubles on the host therefore have the same
|
||||
layout as a 387 FPU stack register. */
|
||||
|
||||
#if defined(HAVE_LONG_DOUBLE) && defined(HOST_I386)
|
||||
#undef LD_I387
|
||||
#define LD_I387
|
||||
#endif
|
||||
|
||||
/* Allow floating point numbers to be specified by a raw long double
|
||||
10 hex bytes number, e.g. 1.0 can be input as
|
||||
0x3fff8000000000000000 */
|
||||
|
||||
#ifdef LD_I387
|
||||
#define HEX_LONG_DOUBLE_INPUT(base,p,len,target) \
|
||||
((base) == 16 && (len) == 20 \
|
||||
&& i387_hex_long_double_input ((p), (target)))
|
||||
#endif
|
||||
|
||||
extern int i387_hex_long_double_input (char *p, long double *putithere);
|
||||
|
||||
#undef REGISTER_CONVERT_TO_VIRTUAL
|
||||
#ifdef LD_I387
|
||||
#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,TYPE,FROM,TO) \
|
||||
{ \
|
||||
if (TYPE == REGISTER_VIRTUAL_TYPE (REGNUM)) \
|
||||
{ \
|
||||
memcpy (TO, FROM, TYPE_LENGTH (TYPE)); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
long double val = *((long double *)FROM); \
|
||||
store_floating ((TO), TYPE_LENGTH (TYPE), val); \
|
||||
} \
|
||||
}
|
||||
#else
|
||||
/* Convert data from raw format for register REGNUM in buffer FROM to
|
||||
virtual format with type TYPE in buffer TO. */
|
||||
#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,TYPE,FROM,TO) \
|
||||
{ \
|
||||
double val; \
|
||||
i387_to_double ((FROM), (char *)&val); \
|
||||
store_floating ((TO), TYPE_LENGTH (TYPE), val); \
|
||||
}
|
||||
#endif
|
||||
|
||||
extern void i387_to_double PARAMS ((char *, char *));
|
||||
|
||||
#undef REGISTER_CONVERT_TO_RAW
|
||||
#ifdef LD_I387
|
||||
#define REGISTER_CONVERT_TO_RAW(TYPE,REGNUM,FROM,TO) \
|
||||
{ \
|
||||
if (TYPE == REGISTER_VIRTUAL_TYPE (REGNUM)) \
|
||||
{ \
|
||||
memcpy (TO, FROM, TYPE_LENGTH (TYPE)); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
long double val = extract_floating ((FROM), TYPE_LENGTH (TYPE)); \
|
||||
*((long double *)TO) = val; \
|
||||
} \
|
||||
}
|
||||
#else
|
||||
#define REGISTER_CONVERT_TO_RAW(TYPE,REGNUM,FROM,TO) \
|
||||
{ \
|
||||
double val = extract_floating ((FROM), TYPE_LENGTH (TYPE)); \
|
||||
double_to_i387((char *)&val, (TO)); \
|
||||
}
|
||||
#endif
|
||||
|
||||
extern void double_to_i387 PARAMS ((char *, char *));
|
||||
|
||||
/* Return the GDB type object for the "standard" data type of data in
|
||||
register N. */
|
||||
|
||||
#undef REGISTER_VIRTUAL_TYPE
|
||||
#ifdef LD_I387
|
||||
#define REGISTER_VIRTUAL_TYPE(N) \
|
||||
((N < FP0_REGNUM) ? builtin_type_int : \
|
||||
(N < FPC_REGNUM) ? builtin_type_long_double : builtin_type_int)
|
||||
#else
|
||||
#define REGISTER_VIRTUAL_TYPE(N) \
|
||||
((N < FP0_REGNUM) ? builtin_type_int : \
|
||||
(N < FPC_REGNUM) ? builtin_type_double : builtin_type_int)
|
||||
#endif
|
||||
|
||||
#undef TARGET_LONG_DOUBLE_BIT
|
||||
#define TARGET_LONG_DOUBLE_BIT 96
|
||||
|
||||
#define NAMES_HAVE_UNDERSCORE
|
||||
@@ -15,7 +15,7 @@ GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
#ifndef TM_I386_H
|
||||
#define TM_I386_H 1
|
||||
|
||||
17
gdb/config/i386/windows.mh
Normal file
17
gdb/config/i386/windows.mh
Normal file
@@ -0,0 +1,17 @@
|
||||
# gdbwin.o and ser-win32s.c have to be named because they have
|
||||
# _initialize functions that need to be found by init.c
|
||||
# gui.ores has to be named, or else msvc won't link it in.
|
||||
XDEPFILES = \
|
||||
mswin/gdbwin.o \
|
||||
mswin/ser-win32s.o \
|
||||
mswin/gui.ores \
|
||||
mswin/libwingdb.a
|
||||
|
||||
$(XDEPFILES):
|
||||
rootme=`pwd` ; export rootme ; \
|
||||
( cd mswin ; \
|
||||
$(MAKE) $(FLAGS_TO_PASS) all )
|
||||
|
||||
XM_FILE=xm-windows.h
|
||||
MMALLOC=
|
||||
SER_HARDWIRE =
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Host-dependent definitions for Intel x86 running DJGPP.
|
||||
Copyright 1993-1996 Free Software Foundation, Inc.
|
||||
/* Definitions for hosting on GO32, for GDB.
|
||||
Copyright 1991, 1992 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@@ -18,20 +18,14 @@ along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define HOST_BYTE_ORDER LITTLE_ENDIAN
|
||||
|
||||
#include "fopen-bin.h"
|
||||
|
||||
/* Define this lseek(n) != nth byte of file */
|
||||
#define LSEEK_NOT_LINEAR
|
||||
|
||||
#define CANT_FORK
|
||||
|
||||
#undef QUIT
|
||||
#define QUIT { pollquit(); }
|
||||
|
||||
#define GDBINIT_FILENAME "gdb.ini"
|
||||
|
||||
#define SLASH_P(X) ((X)=='\\' || (X) == '/')
|
||||
|
||||
#define ROOTED_P(X) ((SLASH_P((X)[0]))|| ((X)[1] ==':'))
|
||||
|
||||
#define SLASH_CHAR '/'
|
||||
#define SLASH_STRING "/"
|
||||
|
||||
#define CRLF_SOURCE_FILES
|
||||
|
||||
#define DIRNAME_SEPARATOR ';'
|
||||
|
||||
#define HOST_I386
|
||||
|
||||
@@ -193,7 +193,7 @@ extern use_struct_convention_fn m32r_use_struct_convention;
|
||||
/* generic dummy frame stuff */
|
||||
|
||||
#define PUSH_DUMMY_FRAME generic_push_dummy_frame ()
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP)
|
||||
|
||||
|
||||
/* target-specific dummy_frame stuff */
|
||||
@@ -222,11 +222,9 @@ extern CORE_ADDR m32r_push_arguments PARAMS ((int nargs,
|
||||
|
||||
/* override the standard get_saved_register function with
|
||||
one that takes account of generic CALL_DUMMY frames */
|
||||
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
|
||||
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
|
||||
#define GET_SAVED_REGISTER
|
||||
|
||||
|
||||
#define USE_GENERIC_DUMMY_FRAMES 1
|
||||
#define USE_GENERIC_DUMMY_FRAMES
|
||||
#define CALL_DUMMY {0}
|
||||
#define CALL_DUMMY_LENGTH (0)
|
||||
#define CALL_DUMMY_START_OFFSET (0)
|
||||
|
||||
@@ -177,7 +177,7 @@ extern CORE_ADDR mn10200_skip_prologue PARAMS ((CORE_ADDR));
|
||||
extern void mn10200_pop_frame PARAMS ((struct frame_info *));
|
||||
#define POP_FRAME mn10200_pop_frame (get_current_frame ())
|
||||
|
||||
#define USE_GENERIC_DUMMY_FRAMES 1
|
||||
#define USE_GENERIC_DUMMY_FRAMES
|
||||
#define CALL_DUMMY {0}
|
||||
#define CALL_DUMMY_START_OFFSET (0)
|
||||
#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
|
||||
@@ -196,7 +196,7 @@ mn10200_push_arguments PARAMS ((int, struct value **, CORE_ADDR,
|
||||
#define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
|
||||
(SP) = mn10200_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)
|
||||
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP)
|
||||
|
||||
#define REG_STRUCT_HAS_ADDR(gcc_p,TYPE) \
|
||||
(TYPE_LENGTH (TYPE) > 8)
|
||||
@@ -206,8 +206,7 @@ extern use_struct_convention_fn mn10200_use_struct_convention;
|
||||
|
||||
/* Override the default get_saved_register function with
|
||||
one that takes account of generic CALL_DUMMY frames. */
|
||||
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
|
||||
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
|
||||
#define GET_SAVED_REGISTER
|
||||
|
||||
/* Define this for Wingdb */
|
||||
#define TARGET_MN10200
|
||||
|
||||
@@ -124,7 +124,7 @@ extern CORE_ADDR mn10300_skip_prologue PARAMS ((CORE_ADDR));
|
||||
extern void mn10300_pop_frame PARAMS ((struct frame_info *));
|
||||
#define POP_FRAME mn10300_pop_frame (get_current_frame ())
|
||||
|
||||
#define USE_GENERIC_DUMMY_FRAMES 1
|
||||
#define USE_GENERIC_DUMMY_FRAMES
|
||||
#define CALL_DUMMY {0}
|
||||
#define CALL_DUMMY_START_OFFSET (0)
|
||||
#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
|
||||
@@ -143,7 +143,7 @@ mn10300_push_arguments PARAMS ((int, struct value **, CORE_ADDR,
|
||||
#define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
|
||||
(SP) = mn10300_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)
|
||||
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP)
|
||||
|
||||
#define REG_STRUCT_HAS_ADDR(gcc_p,TYPE) \
|
||||
(TYPE_LENGTH (TYPE) > 8)
|
||||
@@ -153,8 +153,7 @@ extern use_struct_convention_fn mn10300_use_struct_convention;
|
||||
|
||||
/* override the default get_saved_register function with
|
||||
one that takes account of generic CALL_DUMMY frames */
|
||||
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
|
||||
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
|
||||
#define GET_SAVED_REGISTER
|
||||
|
||||
/* Cons up virtual frame pointer for trace */
|
||||
extern void mn10300_virtual_frame_pointer PARAMS ((CORE_ADDR, long *, long *));
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
#ifndef __NM_GNU_H__
|
||||
#define __NM_GNU_H__
|
||||
@@ -40,4 +40,6 @@ extern char *gnu_target_pid_to_str (int pid);
|
||||
#include "solib.h"
|
||||
#define NO_CORE_OPS
|
||||
|
||||
#define MAINTENANCE_CMDS 1
|
||||
|
||||
#endif /* __NM_GNU_H__ */
|
||||
|
||||
@@ -279,10 +279,3 @@ extern char *hpux_pid_to_str PARAMS ((int pid));
|
||||
#endif /* HAVE_HPUX_THREAD_SUPPORT */
|
||||
|
||||
#define HPUXHPPA
|
||||
|
||||
#define MAY_SWITCH_FROM_INFERIOR_PID (1)
|
||||
|
||||
#define MAY_FOLLOW_EXEC (1)
|
||||
|
||||
#define USE_THREAD_STEP_NEEDED (1)
|
||||
|
||||
|
||||
@@ -469,7 +469,7 @@ hppa_frame_find_saved_regs PARAMS ((struct frame_info *,
|
||||
|
||||
/* Push an empty stack frame, to record the current PC, etc. */
|
||||
|
||||
#define PUSH_DUMMY_FRAME push_dummy_frame (inf_status)
|
||||
#define PUSH_DUMMY_FRAME push_dummy_frame (&inf_status)
|
||||
extern void push_dummy_frame PARAMS ((struct inferior_status *));
|
||||
|
||||
/* Discard from the stack the innermost frame,
|
||||
|
||||
@@ -15,7 +15,7 @@ GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
#include "rs6000/nm-rs6000.h"
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
/* Use generic RS6000 definitions. */
|
||||
#include "rs6000/tm-rs6000.h"
|
||||
|
||||
@@ -15,7 +15,7 @@ GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
#ifndef TM_PPC_AIX_H
|
||||
#define TM_PPC_AIX_H
|
||||
|
||||
@@ -46,6 +46,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
/* FIXME: This just checks for the end of the stack, which is broken
|
||||
for things like stepping through gcc nested function stubs. */
|
||||
#undef PC_IN_CALL_DUMMY
|
||||
#define PC_IN_CALL_DUMMY(STOP_PC, STOP_SP, STOP_FRAME_ADDR) \
|
||||
(STOP_SP < STOP_PC)
|
||||
|
||||
/* generic dummy frame stuff */
|
||||
|
||||
@@ -69,10 +71,9 @@ extern CORE_ADDR rs6000_push_arguments PARAMS ((int nargs,
|
||||
|
||||
/* override the standard get_saved_register function with
|
||||
one that takes account of generic CALL_DUMMY frames */
|
||||
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
|
||||
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
|
||||
#define GET_SAVED_REGISTER
|
||||
|
||||
#define USE_GENERIC_DUMMY_FRAMES 1
|
||||
#define USE_GENERIC_DUMMY_FRAMES
|
||||
#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
|
||||
#define CALL_DUMMY_LOCATION AT_ENTRY_POINT
|
||||
#define CALL_DUMMY_ADDRESS() entry_point_address ()
|
||||
|
||||
@@ -16,7 +16,7 @@ GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
#include "xm-aix4.h"
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
#ifndef TM_RS6000_AIX4_H
|
||||
#define TM_RS6000_AIX4_H
|
||||
|
||||
@@ -239,7 +239,7 @@ extern CORE_ADDR sh_push_arguments PARAMS ((int nargs,
|
||||
unsigned char struct_return,
|
||||
CORE_ADDR struct_addr));
|
||||
|
||||
#define USE_GENERIC_DUMMY_FRAMES 1
|
||||
#define USE_GENERIC_DUMMY_FRAMES
|
||||
#define CALL_DUMMY {0}
|
||||
#define CALL_DUMMY_LENGTH (0)
|
||||
#define CALL_DUMMY_START_OFFSET (0)
|
||||
@@ -255,14 +255,13 @@ extern CORE_ADDR sh_frame_chain PARAMS ((struct frame_info *));
|
||||
#define FRAME_CHAIN(FRAME) sh_frame_chain(FRAME)
|
||||
#define PUSH_DUMMY_FRAME generic_push_dummy_frame ()
|
||||
#define FRAME_CHAIN_VALID(FP, FRAME) generic_frame_chain_valid (FP, FRAME)
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP)
|
||||
#define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
|
||||
(SP) = sh_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)
|
||||
|
||||
/* override the standard get_saved_register function with
|
||||
one that takes account of generic CALL_DUMMY frames */
|
||||
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
|
||||
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
|
||||
#define GET_SAVED_REGISTER
|
||||
|
||||
/* Discard from the stack the innermost frame, restoring all saved
|
||||
registers. */
|
||||
|
||||
@@ -206,13 +206,7 @@ extern CORE_ADDR sparc_pc_adjust PARAMS ((CORE_ADDR));
|
||||
outs change into ins in different frames. HAVE_REGISTER_WINDOWS can't
|
||||
deal with this case and also handle flat frames at the same time. */
|
||||
|
||||
#ifdef __STDC__
|
||||
struct frame_info;
|
||||
enum lval_type;
|
||||
#endif
|
||||
void sparc_get_saved_register PARAMS ((char *raw_buffer, int *optimized, CORE_ADDR *addrp, struct frame_info *frame, int regnum, enum lval_type *lvalp));
|
||||
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
|
||||
sparc_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
|
||||
#define GET_SAVED_REGISTER 1
|
||||
|
||||
/* Number of bytes of storage in the actual machine representation
|
||||
for register N. */
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
# Target: TI TMS320C80 (MVP) processor
|
||||
TDEPFILES= tic80-tdep.o
|
||||
TM_FILE= tm-tic80.h
|
||||
SIM_OBS = remote-sim.o
|
||||
SIM = ../sim/tic80/libsim.a
|
||||
GDBSERVER_DEPFILES= low-sim.o
|
||||
GDBSERVER_LIBS = ../../sim/tic80/libsim.a ../../bfd/libbfd.a ../../libiberty/libiberty.a -lm
|
||||
@@ -1,257 +0,0 @@
|
||||
/* Parameters for execution on a TI TMS320C80 (MVP) processor.
|
||||
Copyright 1997
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef TM_TIC80_H
|
||||
#define TM_TIC80_H
|
||||
|
||||
#ifdef __STDC__ /* Forward declare structs used in prototypes */
|
||||
struct frame_info;
|
||||
struct type;
|
||||
struct value;
|
||||
struct symbol;
|
||||
struct frame_saved_regs;
|
||||
#endif
|
||||
|
||||
#define TARGET_BYTE_ORDER LITTLE_ENDIAN
|
||||
|
||||
/* Define this if the C compiler puts an underscore at the front
|
||||
of external names before giving them to the linker. */
|
||||
|
||||
#define NAMES_HAVE_UNDERSCORE
|
||||
|
||||
#define NUM_REGS 38
|
||||
|
||||
#define REGISTER_NAMES \
|
||||
{ "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", \
|
||||
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", \
|
||||
"r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23", \
|
||||
"r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31", \
|
||||
"pc", "npc", \
|
||||
"a0", "a1", "a2", "a3", \
|
||||
}
|
||||
|
||||
/* Various dedicated register numbers
|
||||
FIXME: Shadow updates in sim/tic80/sim-calls.c */
|
||||
|
||||
#define SP_REGNUM 1 /* Contains address of top of stack */
|
||||
#define ARG0_REGNUM 2 /* Contains argument 1 (r3 has high word) */
|
||||
#define RET_REGNUM 2 /* Contains function return value */
|
||||
#define ARGLAST_REGNUM 12 /* Contains argument 6 (r13 has high word) */
|
||||
#define FP_REGNUM 30 /* Contains address of executing stack frame */
|
||||
#define LR_REGNUM 31 /* Contains address of caller (link register) */
|
||||
#define PC_REGNUM 32 /* Contains program counter (FIXME?) */
|
||||
#define NPC_REGNUM 33 /* Contains the next program counter (FIXME?) */
|
||||
#define A0_REGNUM 34 /* Accumulator register 0 */
|
||||
#define A3_REGNUM 37 /* Accumulator register 1 */
|
||||
|
||||
#define R0_REGNUM 0 /* General Purpose Register 0 - for sim */
|
||||
#define Rn_REGNUM 31 /* Last General Purpose Register - for sim */
|
||||
#define An_REGNUM A3_REGNUM /* Last Accumulator register - for sim */
|
||||
|
||||
/* Total amount of space needed to store our copies of the machine's
|
||||
register state, the array `registers'. */
|
||||
|
||||
#define REGISTER_BYTES (((NUM_REGS - 4) * 4) + (4 * 8))
|
||||
|
||||
/* Index within `registers' of the first byte of the space for
|
||||
register N. */
|
||||
|
||||
#define REGISTER_BYTE(N) \
|
||||
(((N) >= A0_REGNUM) ? (((N) - A0_REGNUM) * 8 + A0_REGNUM * 4) : ((N) * 4))
|
||||
|
||||
/* Most registers are 4 bytes */
|
||||
|
||||
#define REGISTER_SIZE 4
|
||||
|
||||
/* Some registers are 8 bytes. */
|
||||
|
||||
#define REGISTER_RAW_SIZE(N) \
|
||||
(((N) >= A0_REGNUM) ? 8 : 4)
|
||||
|
||||
/* Largest value REGISTER_RAW_SIZE can have. */
|
||||
|
||||
#define MAX_REGISTER_RAW_SIZE (8)
|
||||
|
||||
/* All regs are 4 bytes. */
|
||||
|
||||
#define REGISTER_VIRTUAL_SIZE(N) (REGISTER_RAW_SIZE(N))
|
||||
|
||||
/* Largest value REGISTER_VIRTUAL_SIZE can have. */
|
||||
|
||||
#define MAX_REGISTER_VIRTUAL_SIZE (MAX_REGISTER_RAW_SIZE)
|
||||
|
||||
/* Return the GDB type object for the "standard" data type
|
||||
of data in register N. */
|
||||
|
||||
#define REGISTER_VIRTUAL_TYPE(N) /* FIXME? */ \
|
||||
(((N) >= A0_REGNUM) ? builtin_type_float : builtin_type_int)
|
||||
|
||||
/* Offset from address of function to start of its code.
|
||||
Zero on most machines. */
|
||||
|
||||
#define FUNCTION_START_OFFSET 0
|
||||
|
||||
/* Stack grows downward. */
|
||||
|
||||
#define INNER_THAN(lhs,rhs) ((lhs) < (rhs))
|
||||
|
||||
/* Sequence of bytes for breakpoint instruction.
|
||||
This is padded out to the size of a machine word. */
|
||||
|
||||
#define BREAKPOINT {0x49, 0x80, 0x00, 0x00} /* FIXME! */
|
||||
|
||||
/* Amount PC must be decremented by after a breakpoint.
|
||||
This is often the number of bytes in BREAKPOINT
|
||||
but not always. */
|
||||
|
||||
#define DECR_PC_AFTER_BREAK 0 /* FIXME! */
|
||||
|
||||
/* Discard from the stack the innermost frame, restoring all registers. */
|
||||
|
||||
#define POP_FRAME tic80_pop_frame(get_current_frame ())
|
||||
extern struct frame_info *tic80_pop_frame PARAMS ((struct frame_info *frame));
|
||||
|
||||
/* Return number of bytes at start of arglist that are not really args. */
|
||||
|
||||
#define FRAME_ARGS_SKIP 0
|
||||
|
||||
/* Set VAL to the number of args passed to frame described by FI.
|
||||
Can set VAL to -1, meaning no way to tell. */
|
||||
/* We can't tell how many args there are */
|
||||
|
||||
#define FRAME_NUM_ARGS(val,fi) (val = -1)
|
||||
|
||||
#define FRAME_ARGS_SKIP 0
|
||||
#define FRAME_ARGS_ADDRESS(fi) (fi)->frame
|
||||
#define FRAME_LOCALS_ADDRESS(fi) (fi)->frame
|
||||
|
||||
/* Define other aspects of the stack frame.
|
||||
We keep the offsets of all saved registers, 'cause we need 'em a lot!
|
||||
We also keep the current size of the stack frame, and the offset of
|
||||
the frame pointer from the stack pointer (for frameless functions, and
|
||||
when we're still in the prologue of a function with a frame) */
|
||||
|
||||
#define EXTRA_FRAME_INFO \
|
||||
struct frame_saved_regs fsr; \
|
||||
int framesize; \
|
||||
int frameoffset; \
|
||||
int framereg;
|
||||
|
||||
extern void tic80_init_extra_frame_info PARAMS ((struct frame_info *fi));
|
||||
#define INIT_EXTRA_FRAME_INFO(fromleaf, fi) tic80_init_extra_frame_info (fi)
|
||||
#define INIT_FRAME_PC /* Not necessary */
|
||||
|
||||
/* Put here the code to store, into a struct frame_saved_regs,
|
||||
the addresses of the saved registers of frame described by FRAME_INFO.
|
||||
This includes special registers such as pc and fp saved in special
|
||||
ways in the stack frame. sp is even more special:
|
||||
the address we return for it IS the sp for the next frame. */
|
||||
|
||||
#define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \
|
||||
tic80_frame_find_saved_regs(frame_info, &(frame_saved_regs))
|
||||
extern void tic80_frame_find_saved_regs PARAMS ((struct frame_info *, struct frame_saved_regs *));
|
||||
|
||||
/* Advance PC across any function entry prologue instructions
|
||||
to reach some "real" code. */
|
||||
|
||||
#define SKIP_PROLOGUE(pc) { (pc) = tic80_skip_prologue (pc); }
|
||||
extern CORE_ADDR tic80_skip_prologue PARAMS ((CORE_ADDR pc));
|
||||
|
||||
/* Immediately after a function call, return the saved pc.
|
||||
Can't always go through the frames for this because on some machines
|
||||
the new frame is not set up until the new function executes
|
||||
some instructions. */
|
||||
|
||||
#define SAVED_PC_AFTER_CALL(frame) read_register (LR_REGNUM)
|
||||
|
||||
/* Describe the pointer in each stack frame to the previous stack frame
|
||||
(its caller). */
|
||||
|
||||
/* FRAME_CHAIN takes a frame's nominal address
|
||||
and produces the frame's chain-pointer. */
|
||||
|
||||
#define FRAME_CHAIN(thisframe) (CORE_ADDR) tic80_frame_chain (thisframe)
|
||||
extern CORE_ADDR tic80_frame_chain PARAMS ((struct frame_info *));
|
||||
|
||||
#define FRAME_SAVED_PC(FRAME) tic80_frame_saved_pc (FRAME)
|
||||
extern CORE_ADDR tic80_frame_saved_pc PARAMS ((struct frame_info *));
|
||||
|
||||
/* Store the address of the place in which to copy the structure the
|
||||
subroutine will return. This is called from call_function.
|
||||
|
||||
We store structs through a pointer passed in R2 */
|
||||
|
||||
#define STORE_STRUCT_RETURN(STRUCT_ADDR, SP) \
|
||||
write_register (ARG0_REGNUM, STRUCT_ADDR)
|
||||
|
||||
/* Extract from an array REGBUF containing the (raw) register state
|
||||
a function return value of type TYPE, and copy that, in virtual format,
|
||||
into VALBUF. */
|
||||
|
||||
#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
|
||||
memcpy ((VALBUF), \
|
||||
(char *)(REGBUF) + REGISTER_BYTE (RET_REGNUM) + \
|
||||
((TYPE_LENGTH (TYPE) > 4 ? 8 : 4) - TYPE_LENGTH (TYPE)), \
|
||||
TYPE_LENGTH (TYPE))
|
||||
|
||||
/* Write into appropriate registers a function return value
|
||||
of type TYPE, given in virtual format. */
|
||||
|
||||
#define STORE_RETURN_VALUE(TYPE,VALBUF) \
|
||||
write_register_bytes(REGISTER_BYTE (RET_REGNUM) + \
|
||||
((TYPE_LENGTH (TYPE) > 4 ? 8:4) - TYPE_LENGTH (TYPE)),\
|
||||
(VALBUF), TYPE_LENGTH (TYPE));
|
||||
|
||||
|
||||
|
||||
/* PUSH_ARGUMENTS */
|
||||
extern CORE_ADDR tic80_push_arguments PARAMS ((int nargs,
|
||||
struct value **args,
|
||||
CORE_ADDR sp,
|
||||
unsigned char struct_return,
|
||||
CORE_ADDR struct_addr));
|
||||
|
||||
#define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
|
||||
(SP) = tic80_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)
|
||||
|
||||
/* PUSH_RETURN_ADDRESS */
|
||||
extern CORE_ADDR tic80_push_return_address PARAMS ((CORE_ADDR, CORE_ADDR));
|
||||
#define PUSH_RETURN_ADDRESS(PC, SP) tic80_push_return_address (PC, SP)
|
||||
|
||||
/* override the standard get_saved_register function with
|
||||
one that takes account of generic CALL_DUMMY frames */
|
||||
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
|
||||
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
|
||||
|
||||
#define USE_GENERIC_DUMMY_FRAMES 1
|
||||
#define CALL_DUMMY {0}
|
||||
#define CALL_DUMMY_LENGTH (0)
|
||||
#define CALL_DUMMY_START_OFFSET (0)
|
||||
#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
|
||||
#define FIX_CALL_DUMMY(DUMMY1, STARTADDR, FUNADDR, NARGS, ARGS, TYPE, GCCP)
|
||||
#define CALL_DUMMY_LOCATION AT_ENTRY_POINT
|
||||
#define CALL_DUMMY_ADDRESS() entry_point_address ()
|
||||
|
||||
/* generic dummy frame stuff */
|
||||
|
||||
#define PUSH_DUMMY_FRAME generic_push_dummy_frame ()
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
|
||||
|
||||
#endif /* TM_TIC80_H */
|
||||
@@ -137,7 +137,7 @@ extern CORE_ADDR v850_skip_prologue PARAMS ((CORE_ADDR pc));
|
||||
extern void v850_pop_frame PARAMS ((struct frame_info *frame));
|
||||
#define POP_FRAME v850_pop_frame (get_current_frame ())
|
||||
|
||||
#define USE_GENERIC_DUMMY_FRAMES 1
|
||||
#define USE_GENERIC_DUMMY_FRAMES
|
||||
#define CALL_DUMMY {0}
|
||||
#define CALL_DUMMY_START_OFFSET (0)
|
||||
#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
|
||||
@@ -160,15 +160,14 @@ v850_push_arguments PARAMS ((int nargs, struct value **args, CORE_ADDR sp,
|
||||
#define STORE_STRUCT_RETURN(STRUCT_ADDR, SP)
|
||||
|
||||
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
|
||||
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP)
|
||||
|
||||
extern use_struct_convention_fn v850_use_struct_convention;
|
||||
#define USE_STRUCT_CONVENTION(GCC_P, TYPE) v850_use_struct_convention (GCC_P, TYPE);
|
||||
|
||||
/* override the default get_saved_register function with
|
||||
one that takes account of generic CALL_DUMMY frames */
|
||||
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
|
||||
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
|
||||
#define GET_SAVED_REGISTER
|
||||
|
||||
/* Define this for Wingdb */
|
||||
|
||||
|
||||
732
gdb/configure
vendored
732
gdb/configure
vendored
File diff suppressed because it is too large
Load Diff
@@ -56,7 +56,6 @@ i[3456]86-*-dgux*) gdb_host=i386dgux ;;
|
||||
i[3456]86-*-freebsd*) gdb_host=fbsd ;;
|
||||
i[3456]86-*-netbsd*) gdb_host=nbsd ;;
|
||||
i[3456]86-*-go32*) gdb_host=go32 ;;
|
||||
i[3456]86-*-msdosdjgpp*) gdb_host=go32 ;;
|
||||
i[3456]86-*-linux*) gdb_host=linux ;;
|
||||
i[3456]86-*-lynxos*) gdb_host=i386lynx ;;
|
||||
i[3456]86-*-mach3*) gdb_host=i386m3 ;;
|
||||
@@ -105,7 +104,7 @@ m88*-motorola-sysv4*) gdb_host=delta88v4 ;;
|
||||
m88*-motorola-sysv*) gdb_host=delta88 ;;
|
||||
m88*-*-*) gdb_host=m88k ;;
|
||||
|
||||
mips-dec-mach3*) gdb_host=mipsm3 ;;
|
||||
mips-dec-mach3*) gdb_host=mach3 ;;
|
||||
mips-dec-*) gdb_host=decstation ;;
|
||||
mips-little-*) gdb_host=littlemips ;;
|
||||
mips-sgi-irix3*) gdb_host=irix3 ;;
|
||||
|
||||
@@ -54,7 +54,6 @@ changequote(,)dnl
|
||||
dnl
|
||||
changequote([,])dnl
|
||||
|
||||
AC_PROG_AWK
|
||||
AC_PROG_INSTALL
|
||||
AC_CHECK_TOOL(AR, ar)
|
||||
AC_CHECK_TOOL(RANLIB, ranlib, :)
|
||||
@@ -70,7 +69,7 @@ AC_CHECK_HEADERS(ctype.h curses.h endian.h link.h \
|
||||
memory.h objlist.h ptrace.h sgtty.h stddef.h stdlib.h \
|
||||
string.h sys/procfs.h sys/ptrace.h sys/reg.h \
|
||||
term.h termio.h termios.h unistd.h wait.h sys/wait.h \
|
||||
wchar.h wctype.h asm/debugreg.h sys/debugreg.h sys/select.h)
|
||||
wchar.h wctype.h asm/debugreg.h sys/debugreg.h)
|
||||
AC_HEADER_STAT
|
||||
|
||||
AC_C_CONST
|
||||
@@ -410,19 +409,6 @@ if test x$want_mmalloc = xtrue; then
|
||||
MMALLOC='../mmalloc/libmmalloc.a'
|
||||
fi
|
||||
|
||||
|
||||
# In the Cygwin environment, we need some additional flags.
|
||||
AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
|
||||
[AC_EGREP_CPP(lose, [
|
||||
#if defined (__CYGWIN__) || defined (__CYGWIN32__)
|
||||
lose
|
||||
#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
|
||||
|
||||
DLLTOOL=${DLLTOOL-dlltool}
|
||||
WINDRES=${WINDRES-windres}
|
||||
AC_SUBST(DLLTOOL)
|
||||
AC_SUBST(WINDRES)
|
||||
|
||||
dnl Figure out which term library to use.
|
||||
if test x$gdb_cv_os_cygwin = xyes; then
|
||||
TERM_LIB='`if test -r ../libtermcap/libtermcap.a; then echo ../libtermcap/libtermcap.a; else echo -ltermcap; fi`'
|
||||
@@ -443,44 +429,8 @@ fi
|
||||
AC_SUBST(TERM_LIB)
|
||||
|
||||
|
||||
|
||||
|
||||
AC_PATH_X
|
||||
|
||||
|
||||
# Unlike the sim directory, whether a simulator is linked is controlled by
|
||||
# presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
|
||||
# This code just checks for a few cases where we'd like to ignore those
|
||||
# definitions, even when they're present in the '.mt' file. These cases
|
||||
# are when --disable-sim is specified, or if the simulator directory is
|
||||
# not part of the soruce tree.
|
||||
#
|
||||
AC_ARG_ENABLE(sim,
|
||||
[ --enable-sim Link gdb with simulator],
|
||||
[echo "enable_sim = $enable_sim";
|
||||
echo "enableval = ${enableval}";
|
||||
case "${enableval}" in
|
||||
yes) ignore_sim=false ;;
|
||||
no) ignore_sim=true ;;
|
||||
*) ignore_sim=false ;;
|
||||
esac],
|
||||
[ignore_sim=false])
|
||||
|
||||
if test ! -d "${srcdir}/../sim"; then
|
||||
ignore_sim=true
|
||||
fi
|
||||
|
||||
if test "${ignore_sim}" = "true"; then
|
||||
IGNORE_SIM="SIM="
|
||||
IGNORE_SIM_OBS="SIM_OBS="
|
||||
else
|
||||
IGNORE_SIM=""
|
||||
IGNORE_SIM_OBS=""
|
||||
AC_DEFINE(WITH_SIM)
|
||||
fi
|
||||
AC_SUBST(IGNORE_SIM)
|
||||
AC_SUBST(IGNORE_SIM_OBS)
|
||||
|
||||
AC_SUBST(ENABLE_CFLAGS)
|
||||
|
||||
AC_SUBST(CONFIG_OBS)
|
||||
|
||||
@@ -50,8 +50,17 @@ alpha*-*-linux*) gdb_target=alpha-linux ;;
|
||||
|
||||
arc-*-*) gdb_target=arc ;;
|
||||
|
||||
arm-*-* | thumb-*-* | strongarm-*-*)
|
||||
gdb_target=arm ;;
|
||||
arm-*-* | thumb-*-* | strongarm-*-*) gdb_target=arm
|
||||
|
||||
# rdi doesn't work for wingdb yet
|
||||
case $gdb_host in
|
||||
windows) ;;
|
||||
*)
|
||||
configdirs="$configdirs rdi-share"
|
||||
CONFIG_OBS="$CONFIG_OBS remote-rdi.o rdi-share/libangsd.a"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
c1-*-*) gdb_target=convex ;;
|
||||
c2-*-*) gdb_target=convex ;;
|
||||
@@ -85,14 +94,13 @@ i[3456]86-*-freebsd*) gdb_target=fbsd ;;
|
||||
i[3456]86-*-netbsd*) gdb_target=nbsd ;;
|
||||
i[3456]86-*-os9k) gdb_target=i386os9k ;;
|
||||
i[3456]86-*-go32*) gdb_target=i386aout ;;
|
||||
i[3456]86-*-msdosdjgpp*) gdb_target=go32 ;;
|
||||
i[3456]86-*-lynxos*) gdb_target=i386lynx
|
||||
configdirs="${configdirs} gdbserver" ;;
|
||||
i[3456]86-*-solaris*) gdb_target=i386sol2 ;;
|
||||
i[3456]86-*-sunos*) gdb_target=sun386 ;;
|
||||
i[3456]86-*-sysv4.2*) gdb_target=i386v42mp ;;
|
||||
i[3456]86-*-sysv4.2MP) gdb_target=i386v42mp ;;
|
||||
i[3456]86-*-sysv4.2uw2*) gdb_target=i386v42mp ;;
|
||||
i[3456]86-*-sysv4*) gdb_target=i386v4 ;;
|
||||
i[3456]86-*-sysv5*) gdb_target=i386v42mp ;;
|
||||
i[3456]86-*-unixware2*) gdb_target=i386v42mp ;;
|
||||
i[3456]86-*-unixware*) gdb_target=i386v4 ;;
|
||||
i[3456]86-*-sco3.2v4*) gdb_target=i386sco4 ;;
|
||||
@@ -110,12 +118,12 @@ i[3456]86-*-netware*) gdb_target=i386nw
|
||||
configdirs="${configdirs} nlm" ;;
|
||||
i[3456]86-*-osf1mk*) gdb_target=i386mk ;;
|
||||
i[3456]86-*-cygwin*) gdb_target=cygwin ;;
|
||||
|
||||
i960-*-bout*) gdb_target=vxworks960 ;;
|
||||
i960-nindy-coff*) gdb_target=nindy960 ;;
|
||||
i960-*-coff*) gdb_target=mon960 ;;
|
||||
i960-nindy-elf*) gdb_target=nindy960 ;;
|
||||
i960-*-elf*) gdb_target=mon960 ;;
|
||||
|
||||
i960-*-nindy*) gdb_target=nindy960 ;;
|
||||
i960-*-vxworks*) gdb_target=vxworks960 ;;
|
||||
|
||||
@@ -258,8 +266,6 @@ sparc64-*-*) gdb_target=sp64 ;;
|
||||
|
||||
tahoe-*-*) gdb_target=tahoe ;;
|
||||
|
||||
tic80-*-*) gdb_target=tic80
|
||||
configdirs="${configdirs} gdbserver" ;;
|
||||
|
||||
vax-*-*) gdb_target=vax ;;
|
||||
|
||||
|
||||
@@ -123,6 +123,9 @@ static struct user u;
|
||||
static thread_t th;
|
||||
static proc_t pr;
|
||||
|
||||
/* The registers of the currently selected thread. */
|
||||
|
||||
extern char registers[REGISTER_BYTES];
|
||||
|
||||
/* Vector and communication registers from core dump or from inferior.
|
||||
These are read on demand, ie, not normally valid. */
|
||||
|
||||
@@ -37,6 +37,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "symfile.h"
|
||||
#include "objfiles.h"
|
||||
|
||||
extern char registers[];
|
||||
|
||||
/* Local function declarations. */
|
||||
|
||||
static void call_extra_exec_file_hooks PARAMS ((char *filename));
|
||||
|
||||
@@ -95,18 +95,15 @@ core_close (quitting)
|
||||
{
|
||||
inferior_pid = 0; /* Avoid confusion from thread stuff */
|
||||
|
||||
/* Clear out solib state while the bfd is still open. See
|
||||
comments in clear_solib in solib.c. */
|
||||
#ifdef CLEAR_SOLIB
|
||||
CLEAR_SOLIB ();
|
||||
#endif
|
||||
|
||||
name = bfd_get_filename (core_bfd);
|
||||
if (!bfd_close (core_bfd))
|
||||
warning ("cannot close \"%s\": %s",
|
||||
name, bfd_errmsg (bfd_get_error ()));
|
||||
free (name);
|
||||
core_bfd = NULL;
|
||||
#ifdef CLEAR_SOLIB
|
||||
CLEAR_SOLIB ();
|
||||
#endif
|
||||
if (core_ops.to_sections)
|
||||
{
|
||||
free ((PTR)core_ops.to_sections);
|
||||
|
||||
@@ -63,6 +63,7 @@ extern int have_symbol_file_p();
|
||||
extern jmp_buf stack_jmp;
|
||||
|
||||
extern int errno;
|
||||
extern char registers[REGISTER_BYTES];
|
||||
|
||||
void
|
||||
fetch_inferior_registers (regno)
|
||||
@@ -309,6 +310,7 @@ fill_gregset (gregsetp, regno)
|
||||
{
|
||||
int regi;
|
||||
register greg_t *regp = (greg_t *) gregsetp;
|
||||
extern char registers[];
|
||||
|
||||
for (regi = 0 ; regi <= R_R31 ; regi++)
|
||||
if ((regno == -1) || (regno == regi))
|
||||
|
||||
@@ -552,45 +552,6 @@ d10v_push_return_address (pc, sp)
|
||||
}
|
||||
|
||||
|
||||
/* When arguments must be pushed onto the stack, they go on in reverse
|
||||
order. The below implements a FILO (stack) to do this. */
|
||||
|
||||
struct stack_item
|
||||
{
|
||||
int len;
|
||||
struct stack_item *prev;
|
||||
void *data;
|
||||
};
|
||||
|
||||
static struct stack_item *push_stack_item PARAMS ((struct stack_item *prev, void *contents, int len));
|
||||
static struct stack_item *
|
||||
push_stack_item (prev, contents, len)
|
||||
struct stack_item *prev;
|
||||
void *contents;
|
||||
int len;
|
||||
{
|
||||
struct stack_item *si;
|
||||
si = xmalloc (sizeof (struct stack_item));
|
||||
si->data = xmalloc (len);
|
||||
si->len = len;
|
||||
si->prev = prev;
|
||||
memcpy (si->data, contents, len);
|
||||
return si;
|
||||
}
|
||||
|
||||
static struct stack_item *pop_stack_item PARAMS ((struct stack_item *si));
|
||||
static struct stack_item *
|
||||
pop_stack_item (si)
|
||||
struct stack_item *si;
|
||||
{
|
||||
struct stack_item *dead = si;
|
||||
si = si->prev;
|
||||
free (dead->data);
|
||||
free (dead);
|
||||
return si;
|
||||
}
|
||||
|
||||
|
||||
CORE_ADDR
|
||||
d10v_push_arguments (nargs, args, sp, struct_return, struct_addr)
|
||||
int nargs;
|
||||
@@ -601,7 +562,6 @@ d10v_push_arguments (nargs, args, sp, struct_return, struct_addr)
|
||||
{
|
||||
int i;
|
||||
int regnum = ARG1_REGNUM;
|
||||
struct stack_item *si = NULL;
|
||||
|
||||
/* Fill in registers and arg lists */
|
||||
for (i = 0; i < nargs; i++)
|
||||
@@ -638,9 +598,9 @@ d10v_push_arguments (nargs, args, sp, struct_return, struct_addr)
|
||||
else
|
||||
{
|
||||
char ptr[2];
|
||||
/* arg will go onto stack */
|
||||
sp -= 2;
|
||||
store_address (ptr, val & 0xffff, 2);
|
||||
si = push_stack_item (si, ptr, 2);
|
||||
write_memory (sp, ptr, 2);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -671,20 +631,13 @@ d10v_push_arguments (nargs, args, sp, struct_return, struct_addr)
|
||||
}
|
||||
else
|
||||
{
|
||||
/* arg will go onto stack */
|
||||
regnum = ARGN_REGNUM + 1;
|
||||
si = push_stack_item (si, contents, len);
|
||||
/* arg goes straight on stack */
|
||||
regnum = ARGN_REGNUM + 1;
|
||||
sp = (sp - len) & ~1;
|
||||
write_memory (sp, contents, len);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
while (si)
|
||||
{
|
||||
sp = (sp - si->len) & ~1;
|
||||
write_memory (sp, si->data, si->len);
|
||||
si = pop_stack_item (si);
|
||||
}
|
||||
|
||||
return sp;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Remote debugging interface to dBUG ROM monitor for GDB, the GNU debugger.
|
||||
Copyright 1996, 1999 Free Software Foundation, Inc.
|
||||
Copyright 1996 Free Software Foundation, Inc.
|
||||
|
||||
Written by Stan Shebs of Cygnus Support.
|
||||
|
||||
@@ -97,12 +97,12 @@ init_dbug_cmds(void)
|
||||
dbug_cmds.flags = MO_CLR_BREAK_USES_ADDR | MO_GETMEM_NEEDS_RANGE | MO_FILL_USES_ADDR;
|
||||
dbug_cmds.init = dbug_inits; /* Init strings */
|
||||
dbug_cmds.cont = "go\r"; /* continue command */
|
||||
dbug_cmds.step = "trace\r"; /* single step */
|
||||
dbug_cmds.step = "step\r"; /* single step */
|
||||
dbug_cmds.stop = NULL; /* interrupt command */
|
||||
dbug_cmds.set_break = "br %x\r"; /* set a breakpoint */
|
||||
dbug_cmds.clr_break = "br -r %x\r"; /* clear a breakpoint */
|
||||
dbug_cmds.clr_all_break = "br -r\r"; /* clear all breakpoints */
|
||||
dbug_cmds.fill = "bf.b %x %x %x\r"; /* fill (start end val) */
|
||||
dbug_cmds.clr_break = "br -c %x\r"; /* clear a breakpoint */
|
||||
dbug_cmds.clr_all_break = "br -c\r"; /* clear all breakpoints */
|
||||
dbug_cmds.fill = "bf.b %x %x %x"; /* fill (start end val) */
|
||||
dbug_cmds.setmem.cmdb = "mm.b %x %x\r"; /* setmem.cmdb (addr, value) */
|
||||
dbug_cmds.setmem.cmdw = "mm.w %x %x\r"; /* setmem.cmdw (addr, value) */
|
||||
dbug_cmds.setmem.cmdl = "mm.l %x %x\r"; /* setmem.cmdl (addr, value) */
|
||||
|
||||
@@ -196,51 +196,6 @@ struct complaint repeated_header_complaint =
|
||||
|
||||
struct complaint unclaimed_bincl_complaint =
|
||||
{"N_BINCL %s not in entries for any file, at symtab pos %d", 0, 0};
|
||||
|
||||
/* find_text_range --- find start and end of loadable code sections
|
||||
|
||||
The find_text_range function finds the shortest address range that
|
||||
encloses all sections containing executable code, and stores it in
|
||||
objfile's text_addr and text_size members.
|
||||
|
||||
dbx_symfile_read will use this to finish off the partial symbol
|
||||
table, in some cases. */
|
||||
|
||||
static void
|
||||
find_text_range (bfd *sym_bfd, struct objfile *objfile)
|
||||
{
|
||||
asection *sec;
|
||||
int found_any = 0;
|
||||
CORE_ADDR start, end;
|
||||
|
||||
for (sec = sym_bfd->sections; sec; sec = sec->next)
|
||||
if (bfd_get_section_flags (sym_bfd, sec) & SEC_CODE)
|
||||
{
|
||||
CORE_ADDR sec_start = bfd_section_vma (sym_bfd, sec);
|
||||
CORE_ADDR sec_end = sec_start + bfd_section_size (sym_bfd, sec);
|
||||
|
||||
if (found_any)
|
||||
{
|
||||
if (sec_start < start) start = sec_start;
|
||||
if (sec_end > end) end = sec_end;
|
||||
}
|
||||
else
|
||||
{
|
||||
start = sec_start;
|
||||
end = sec_end;
|
||||
}
|
||||
|
||||
found_any = 1;
|
||||
}
|
||||
|
||||
if (! found_any)
|
||||
error ("Can't find any code sections in symbol file");
|
||||
|
||||
DBX_TEXT_ADDR (objfile) = start;
|
||||
DBX_TEXT_SIZE (objfile) = end - start;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* During initial symbol readin, we need to have a structure to keep
|
||||
track of which psymtabs have which bincls in them. This structure
|
||||
@@ -2634,9 +2589,11 @@ elfstab_build_psymtabs (objfile, section_offsets, mainline,
|
||||
It might even contain some info from the ELF symtab to help us. */
|
||||
info = objfile->sym_stab_info;
|
||||
|
||||
/* Find the first and last text address. dbx_symfile_read seems to
|
||||
want this. */
|
||||
find_text_range (sym_bfd, objfile);
|
||||
text_sect = bfd_get_section_by_name (sym_bfd, ".text");
|
||||
if (!text_sect)
|
||||
error ("Can't find .text section in symbol file");
|
||||
DBX_TEXT_ADDR (objfile) = bfd_section_vma (sym_bfd, text_sect);
|
||||
DBX_TEXT_SIZE (objfile) = bfd_section_size (sym_bfd, text_sect);
|
||||
|
||||
#define ELF_STABS_SYMBOL_SIZE 12 /* XXX FIXME XXX */
|
||||
DBX_SYMBOL_SIZE (objfile) = ELF_STABS_SYMBOL_SIZE;
|
||||
|
||||
23
gdb/defs.h
23
gdb/defs.h
@@ -1,5 +1,5 @@
|
||||
/* Basic, host-specific, and target-specific definitions for GDB.
|
||||
Copyright (C) 1986, 89, 91, 92, 93, 94, 95, 96, 1998
|
||||
Copyright (C) 1986, 89, 91, 92, 93, 94, 95, 96, 98, 1999
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
@@ -252,8 +252,6 @@ extern void notice_quit PARAMS ((void));
|
||||
|
||||
extern int strcmp_iw PARAMS ((const char *, const char *));
|
||||
|
||||
extern int subset_compare PARAMS ((char *, char *));
|
||||
|
||||
extern char *safe_strerror PARAMS ((int));
|
||||
|
||||
extern char *safe_strsignal PARAMS ((int));
|
||||
@@ -275,8 +273,6 @@ typedef void (*make_cleanup_func) PARAMS ((void *));
|
||||
|
||||
extern struct cleanup *make_cleanup PARAMS ((make_cleanup_func, void *));
|
||||
|
||||
extern struct cleanup *make_cleanup_freeargv PARAMS ((char **));
|
||||
|
||||
extern struct cleanup *make_final_cleanup PARAMS ((make_cleanup_func, void *));
|
||||
|
||||
extern struct cleanup *make_my_cleanup PARAMS ((struct cleanup **,
|
||||
@@ -1023,7 +1019,24 @@ extern CORE_ADDR push_bytes PARAMS ((CORE_ADDR, char *, int));
|
||||
|
||||
extern CORE_ADDR push_word PARAMS ((CORE_ADDR, ULONGEST));
|
||||
|
||||
/* Some parts of gdb might be considered optional, in the sense that they
|
||||
are not essential for being able to build a working, usable debugger
|
||||
for a specific environment. For example, the maintenance commands
|
||||
are there for the benefit of gdb maintainers. As another example,
|
||||
some environments really don't need gdb's that are able to read N
|
||||
different object file formats. In order to make it possible (but
|
||||
not necessarily recommended) to build "stripped down" versions of
|
||||
gdb, the following defines control selective compilation of those
|
||||
parts of gdb which can be safely left out when necessary. Note that
|
||||
the default is to include everything. */
|
||||
|
||||
#ifndef MAINTENANCE_CMDS
|
||||
#define MAINTENANCE_CMDS 1
|
||||
#endif
|
||||
|
||||
#ifdef MAINTENANCE_CMDS
|
||||
extern int watchdog;
|
||||
#endif
|
||||
|
||||
/* Hooks for alternate command interfaces. */
|
||||
|
||||
|
||||
@@ -1,41 +1,3 @@
|
||||
Thu Apr 22 13:07:37 1999 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* gdbint.texinfo (USE_GENERIC_DUMMY_FRAMES): Document.
|
||||
(GET_SAVED_REGISTER): Update, not just the a29k uses this.
|
||||
|
||||
Wed Apr 21 13:59:01 1999 Dave Brolley <brolley@cygnus.com>
|
||||
|
||||
* gdbint.texinfo: Fix typos: $ -> @.
|
||||
|
||||
Tue Apr 20 11:59:38 1999 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* gdbint.texinfo (REGISTER_NAMES, BREAKPOINT, BIG_BREAKPOINT,
|
||||
LITTLE_BREAKPOINT, LITTLE_REMOTE_BREAKPOINT,
|
||||
BIG_REMOTE_BREAKPOINT): Deprecate in favor of REGISTER_NAME and
|
||||
BREAKPOINT_FROM_PC.
|
||||
|
||||
Mon Apr 12 16:00:44 1999 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* gdbint.texinfo (CALL_DUMMY_STACK_ADJUST_P,
|
||||
CALL_DUMMY_STACK_ADJUST): Document.
|
||||
|
||||
Thu Apr 8 17:23:15 1999 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* gdbint.texinfo (CALL_DUMMY_P, CALL_DUMMY_WORDS,
|
||||
SIZEOF_CALL_DUMMY_WORDS, CALL_DUMMY): Define.
|
||||
|
||||
1999-04-02 Stan Shebs <shebs@andros.cygnus.com>
|
||||
|
||||
* gdbint.texinfo (MAINTENANCE_CMDS): Remove ref, since it no
|
||||
longer exists.
|
||||
|
||||
Tue Mar 9 19:25:11 1999 Stan Shebs <shebs@andros.cygnus.com>
|
||||
|
||||
* gdb.texinfo, remote.texi, all-cfg.texi, HPPA-cfg.texi: Remove
|
||||
nearly all @ifset/@ifclear conditionals; nobody uses them, and
|
||||
they make the manual source incomprehensible.
|
||||
* h8-cfg.texi: Remove, hasn't been used in years.
|
||||
|
||||
Thu Feb 11 18:00:59 1999 Stan Shebs <shebs@andros.cygnus.com>
|
||||
|
||||
* gdb.texinfo: Update the credits.
|
||||
|
||||
1
gdb/doc/GDBvn.texi
Normal file
1
gdb/doc/GDBvn.texi
Normal file
@@ -0,0 +1 @@
|
||||
@set GDBVN 4.18
|
||||
@@ -1,5 +1,5 @@
|
||||
@c GDB MANUAL configuration file.
|
||||
@c Copyright (c) 1997, 1998 Free Software Foundation, Inc.
|
||||
@c Copyright (c) 1993 Free Software Foundation, Inc.
|
||||
@c
|
||||
@c NOTE: While the GDB manual is configurable (by changing these
|
||||
@c switches), its configuration is ***NOT*** automatically tied in to
|
||||
@@ -21,9 +21,75 @@
|
||||
@c HP PA-RISC target:
|
||||
@set HPPA
|
||||
@c
|
||||
@c Hitachi H8/300 target:
|
||||
@clear H8
|
||||
@c Hitachi H8/300 target ONLY:
|
||||
@clear H8EXCLUSIVE
|
||||
@c
|
||||
@c remote MIPS target:
|
||||
@clear MIPS
|
||||
@c
|
||||
@c SPARC target:
|
||||
@clear SPARC
|
||||
@c
|
||||
@c AMD 29000 target:
|
||||
@clear AMD29K
|
||||
@c
|
||||
@c Intel 960 target:
|
||||
@clear I960
|
||||
@c
|
||||
@c Tandem ST2000 (phone switch) target:
|
||||
@clear ST2000
|
||||
@c
|
||||
@c Zilog 8000 target:
|
||||
@clear Z8K
|
||||
@c
|
||||
@c Wind River Systems VxWorks environment:
|
||||
@clear VXWORKS
|
||||
@c
|
||||
@c ----------------------------------------------------------------------
|
||||
@c DOC FEATURE FLAGS:
|
||||
@c
|
||||
@c Bare-board target?
|
||||
@clear BARETARGET
|
||||
@c
|
||||
@c Restrict languages discussed to C?
|
||||
@c This is backward. As time permits, change this to language-specific
|
||||
@c switches for what to include.
|
||||
@clear CONLY
|
||||
@c Discuss Fortran?
|
||||
@clear FORTRAN
|
||||
@c
|
||||
@c Discuss Modula 2?
|
||||
@clear MOD2
|
||||
@c
|
||||
@c Specifically for host machine running DOS?
|
||||
@clear DOSHOST
|
||||
@c
|
||||
@c Talk about CPU simulator targets?
|
||||
@clear SIMS
|
||||
@c
|
||||
@c Remote serial line settings of interest?
|
||||
@set SERIAL
|
||||
@c
|
||||
@c Discuss features requiring Posix or similar OS environment?
|
||||
@set POSIX
|
||||
@c
|
||||
@c Discuss remote serial debugging stub?
|
||||
@clear REMOTESTUB
|
||||
@c
|
||||
@c Discuss gdbserver?
|
||||
@set GDBSERVER
|
||||
@c
|
||||
@c Discuss gdbserve.nlm?
|
||||
@set GDBSERVE
|
||||
@c
|
||||
@c Refrain from discussing how to configure sw and format doc?
|
||||
@clear PRECONFIGURED
|
||||
@c
|
||||
@c Refrain from referring to unfree publications?
|
||||
@set FSFDOC
|
||||
@c
|
||||
@c ----------------------------------------------------------------------
|
||||
@c STRINGS:
|
||||
@c
|
||||
|
||||
@@ -21,9 +21,76 @@
|
||||
@c HP PA-RISC target ONLY:
|
||||
@clear HPPA
|
||||
@c
|
||||
@c Hitachi H8/300 target:
|
||||
@set H8
|
||||
@c Hitachi H8/300 target ONLY:
|
||||
@clear H8EXCLUSIVE
|
||||
@c
|
||||
@c remote MIPS target:
|
||||
@set MIPS
|
||||
@c
|
||||
@c SPARC target:
|
||||
@set SPARC
|
||||
@set SPARCLET
|
||||
@c
|
||||
@c AMD 29000 target:
|
||||
@set AMD29K
|
||||
@c
|
||||
@c Intel 960 target:
|
||||
@set I960
|
||||
@c
|
||||
@c Tandem ST2000 (phone switch) target:
|
||||
@set ST2000
|
||||
@c
|
||||
@c Zilog 8000 target:
|
||||
@set Z8K
|
||||
@c
|
||||
@c Wind River Systems VxWorks environment:
|
||||
@set VXWORKS
|
||||
@c
|
||||
@c ----------------------------------------------------------------------
|
||||
@c DOC FEATURE FLAGS:
|
||||
@c
|
||||
@c Bare-board target?
|
||||
@clear BARETARGET
|
||||
@c
|
||||
@c Restrict languages discussed to C?
|
||||
@c This is backward. As time permits, change this to language-specific
|
||||
@c switches for what to include.
|
||||
@clear CONLY
|
||||
@c Discuss Fortran?
|
||||
@set FORTRAN
|
||||
@c
|
||||
@c Discuss Modula 2?
|
||||
@set MOD2
|
||||
@c
|
||||
@c Specifically for host machine running DOS?
|
||||
@clear DOSHOST
|
||||
@c
|
||||
@c Talk about CPU simulator targets?
|
||||
@set SIMS
|
||||
@c
|
||||
@c Remote serial line settings of interest?
|
||||
@set SERIAL
|
||||
@c
|
||||
@c Discuss features requiring Posix or similar OS environment?
|
||||
@set POSIX
|
||||
@c
|
||||
@c Discuss remote serial debugging stub?
|
||||
@set REMOTESTUB
|
||||
@c
|
||||
@c Discuss gdbserver?
|
||||
@set GDBSERVER
|
||||
@c
|
||||
@c Discuss gdbserve.nlm?
|
||||
@set GDBSERVE
|
||||
@c
|
||||
@c Refrain from discussing how to configure sw and format doc?
|
||||
@clear PRECONFIGURED
|
||||
@c
|
||||
@c Refrain from referring to unfree publications?
|
||||
@set FSFDOC
|
||||
@c
|
||||
@c ----------------------------------------------------------------------
|
||||
@c STRINGS:
|
||||
@c
|
||||
|
||||
BIN
gdb/doc/gdb.dvi
Normal file
BIN
gdb/doc/gdb.dvi
Normal file
Binary file not shown.
230
gdb/doc/gdb.info
Normal file
230
gdb/doc/gdb.info
Normal file
@@ -0,0 +1,230 @@
|
||||
This is Info file ./gdb.info, produced by Makeinfo version 1.68 from
|
||||
the input file gdb.texinfo.
|
||||
|
||||
START-INFO-DIR-ENTRY
|
||||
* Gdb: (gdb). The GNU debugger.
|
||||
END-INFO-DIR-ENTRY
|
||||
This file documents the GNU debugger GDB.
|
||||
|
||||
This is the Seventh Edition, February 1999, of `Debugging with GDB:
|
||||
the GNU Source-Level Debugger' for GDB Version 4.18.
|
||||
|
||||
Copyright (C) 1988-1999 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to make and distribute verbatim copies of this
|
||||
manual provided the copyright notice and this permission notice are
|
||||
preserved on all copies.
|
||||
|
||||
Permission is granted to copy and distribute modified versions of
|
||||
this manual under the conditions for verbatim copying, provided also
|
||||
that the entire resulting derived work is distributed under the terms
|
||||
of a permission notice identical to this one.
|
||||
|
||||
Permission is granted to copy and distribute translations of this
|
||||
manual into another language, under the above conditions for modified
|
||||
versions.
|
||||
|
||||
|
||||
Indirect:
|
||||
gdb.info-1: 991
|
||||
gdb.info-2: 48295
|
||||
gdb.info-3: 96814
|
||||
gdb.info-4: 145217
|
||||
gdb.info-5: 193677
|
||||
gdb.info-6: 235496
|
||||
gdb.info-7: 284239
|
||||
gdb.info-8: 332485
|
||||
gdb.info-9: 381855
|
||||
gdb.info-10: 404259
|
||||
|
||||
Tag Table:
|
||||
(Indirect)
|
||||
Node: Top991
|
||||
Node: Summary9590
|
||||
Node: Free Software11196
|
||||
Node: Contributors11950
|
||||
Node: Sample Session17994
|
||||
Node: Invocation24864
|
||||
Node: Invoking GDB25337
|
||||
Node: File Options27232
|
||||
Node: Mode Options30398
|
||||
Node: Quitting GDB32594
|
||||
Node: Shell Commands33460
|
||||
Node: Commands34202
|
||||
Node: Command Syntax34839
|
||||
Node: Completion36719
|
||||
Node: Help41039
|
||||
Node: Running45347
|
||||
Node: Compilation46483
|
||||
Node: Starting48295
|
||||
Node: Arguments51468
|
||||
Node: Environment52472
|
||||
Node: Working Directory55568
|
||||
Node: Input/Output56308
|
||||
Node: Attach57913
|
||||
Node: Kill Process60341
|
||||
Node: Process Information61311
|
||||
Node: Threads62643
|
||||
Node: Processes67288
|
||||
Node: Stopping68520
|
||||
Node: Breakpoints69669
|
||||
Node: Set Breaks72514
|
||||
Node: Set Watchpoints81021
|
||||
Node: Set Catchpoints84382
|
||||
Node: Delete Breaks87850
|
||||
Node: Disabling89517
|
||||
Node: Conditions92204
|
||||
Node: Break Commands96814
|
||||
Node: Breakpoint Menus99690
|
||||
Node: Continuing and Stepping101366
|
||||
Node: Signals108708
|
||||
Node: Thread Stops112376
|
||||
Node: Stack115697
|
||||
Node: Frames117250
|
||||
Node: Backtrace119981
|
||||
Node: Selection121713
|
||||
Node: Frame Info124449
|
||||
Node: Alpha/MIPS Stack126745
|
||||
Node: Source127800
|
||||
Node: List128749
|
||||
Node: Search132289
|
||||
Node: Source Path133092
|
||||
Node: Machine Code135773
|
||||
Node: Data138692
|
||||
Node: Expressions140567
|
||||
Node: Variables142512
|
||||
Node: Arrays145217
|
||||
Node: Output Formats147742
|
||||
Node: Memory149813
|
||||
Node: Auto Display154077
|
||||
Node: Print Settings157832
|
||||
Node: Value History167759
|
||||
Node: Convenience Vars170170
|
||||
Node: Registers172953
|
||||
Node: Floating Point Hardware177655
|
||||
Node: Languages178158
|
||||
Node: Setting179262
|
||||
Node: Filenames180870
|
||||
Node: Manually181624
|
||||
Node: Automatically182822
|
||||
Node: Show183873
|
||||
Node: Checks185171
|
||||
Node: Type Checking186527
|
||||
Node: Range Checking189239
|
||||
Node: Support191580
|
||||
Node: C192520
|
||||
Node: C Operators193677
|
||||
Node: C Constants197758
|
||||
Node: Cplus expressions199745
|
||||
Node: C Defaults202223
|
||||
Node: C Checks202885
|
||||
Node: Debugging C203602
|
||||
Node: Debugging C plus plus204107
|
||||
Node: Modula-2206105
|
||||
Node: M2 Operators206992
|
||||
Node: Built-In Func/Proc210005
|
||||
Node: M2 Constants212744
|
||||
Node: M2 Defaults214333
|
||||
Node: Deviations214928
|
||||
Node: M2 Checks216015
|
||||
Node: M2 Scope216815
|
||||
Node: GDB/M2217824
|
||||
Node: Symbols218763
|
||||
Node: Altering225625
|
||||
Node: Assignment226593
|
||||
Node: Jumping228720
|
||||
Node: Signaling230853
|
||||
Node: Returning231975
|
||||
Node: Calling233167
|
||||
Node: Patching233961
|
||||
Node: GDB Files235031
|
||||
Node: Files235496
|
||||
Node: Symbol Errors245168
|
||||
Node: Targets248747
|
||||
Node: Active Targets249697
|
||||
Node: Target Commands251285
|
||||
Node: Byte Order259363
|
||||
Node: Remote260347
|
||||
Node: Remote Serial261803
|
||||
Node: Stub Contents264411
|
||||
Node: Bootstrapping266512
|
||||
Node: Debug Session270308
|
||||
Node: Protocol273453
|
||||
Node: Server276726
|
||||
Node: NetWare280772
|
||||
Node: i960-Nindy Remote282734
|
||||
Node: Nindy Startup283554
|
||||
Node: Nindy Options284239
|
||||
Node: Nindy Reset285853
|
||||
Node: UDI29K Remote286237
|
||||
Node: EB29K Remote287142
|
||||
Node: Comms (EB29K)287960
|
||||
Node: gdb-EB29K291139
|
||||
Node: Remote Log292505
|
||||
Node: ST2000 Remote292980
|
||||
Node: VxWorks Remote294448
|
||||
Node: VxWorks Connection296408
|
||||
Node: VxWorks Download297334
|
||||
Node: VxWorks Attach299063
|
||||
Node: Sparclet Remote299453
|
||||
Node: Sparclet File300901
|
||||
Node: Sparclet Connection301773
|
||||
Node: Sparclet Download302243
|
||||
Node: Sparclet Execution303281
|
||||
Node: Hitachi Remote303864
|
||||
Node: Hitachi Boards304792
|
||||
Node: Hitachi ICE305855
|
||||
Node: Hitachi Special306643
|
||||
Node: MIPS Remote307369
|
||||
Node: Simulator311666
|
||||
Node: Controlling GDB313222
|
||||
Node: Prompt313833
|
||||
Node: Editing314631
|
||||
Node: History315400
|
||||
Node: Screen Size318099
|
||||
Node: Numbers319497
|
||||
Node: Messages/Warnings320899
|
||||
Node: Sequences322907
|
||||
Node: Define323487
|
||||
Node: Hooks326671
|
||||
Node: Command Files328069
|
||||
Node: Output330078
|
||||
Node: Emacs332485
|
||||
Node: GDB Bugs338431
|
||||
Node: Bug Criteria339153
|
||||
Node: Bug Reporting340040
|
||||
Node: Command Line Editing347326
|
||||
Node: Introduction and Notation347991
|
||||
Node: Readline Interaction349025
|
||||
Node: Readline Bare Essentials350213
|
||||
Node: Readline Movement Commands351749
|
||||
Node: Readline Killing Commands352710
|
||||
Node: Readline Arguments354421
|
||||
Node: Searching355391
|
||||
Node: Readline Init File356969
|
||||
Node: Readline Init File Syntax358011
|
||||
Node: Conditional Init Constructs366872
|
||||
Node: Sample Init File369306
|
||||
Node: Bindable Readline Commands372471
|
||||
Node: Commands For Moving373217
|
||||
Node: Commands For History374060
|
||||
Node: Commands For Text376807
|
||||
Node: Commands For Killing378588
|
||||
Node: Numeric Arguments380733
|
||||
Node: Commands For Completion381855
|
||||
Node: Keyboard Macros383336
|
||||
Node: Miscellaneous Commands383890
|
||||
Node: Readline vi Mode386689
|
||||
Node: Using History Interactively387532
|
||||
Node: History Interaction387887
|
||||
Node: Event Designators388839
|
||||
Node: Word Designators389484
|
||||
Node: Modifiers390392
|
||||
Node: Formatting Documentation391062
|
||||
Node: Installing GDB394433
|
||||
Node: Separate Objdir397915
|
||||
Node: Config Names400485
|
||||
Node: Configure Options401927
|
||||
Node: Index404259
|
||||
|
||||
End Tag Table
|
||||
1319
gdb/doc/gdb.info-1
Normal file
1319
gdb/doc/gdb.info-1
Normal file
File diff suppressed because it is too large
Load Diff
775
gdb/doc/gdb.info-10
Normal file
775
gdb/doc/gdb.info-10
Normal file
@@ -0,0 +1,775 @@
|
||||
This is Info file ./gdb.info, produced by Makeinfo version 1.68 from
|
||||
the input file gdb.texinfo.
|
||||
|
||||
START-INFO-DIR-ENTRY
|
||||
* Gdb: (gdb). The GNU debugger.
|
||||
END-INFO-DIR-ENTRY
|
||||
This file documents the GNU debugger GDB.
|
||||
|
||||
This is the Seventh Edition, February 1999, of `Debugging with GDB:
|
||||
the GNU Source-Level Debugger' for GDB Version 4.18.
|
||||
|
||||
Copyright (C) 1988-1999 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to make and distribute verbatim copies of this
|
||||
manual provided the copyright notice and this permission notice are
|
||||
preserved on all copies.
|
||||
|
||||
Permission is granted to copy and distribute modified versions of
|
||||
this manual under the conditions for verbatim copying, provided also
|
||||
that the entire resulting derived work is distributed under the terms
|
||||
of a permission notice identical to this one.
|
||||
|
||||
Permission is granted to copy and distribute translations of this
|
||||
manual into another language, under the above conditions for modified
|
||||
versions.
|
||||
|
||||
|
||||
File: gdb.info, Node: Index, Prev: Installing GDB, Up: Top
|
||||
|
||||
Index
|
||||
*****
|
||||
|
||||
* Menu:
|
||||
|
||||
* #: Command Syntax.
|
||||
* # in Modula-2: GDB/M2.
|
||||
* $: Value History.
|
||||
* $$: Value History.
|
||||
* $_: Convenience Vars.
|
||||
* $_ and info breakpoints: Set Breaks.
|
||||
* $_ and info line: Machine Code.
|
||||
* $_, $__, and value history: Memory.
|
||||
* $__: Convenience Vars.
|
||||
* $_exitcode: Convenience Vars.
|
||||
* $bpnum: Set Breaks.
|
||||
* $cdir: Source Path.
|
||||
* $cwd: Source Path.
|
||||
* .: M2 Scope.
|
||||
* .esgdbinit: Command Files.
|
||||
* .gdbinit: Command Files.
|
||||
* .os68gdbinit: Command Files.
|
||||
* .vxgdbinit: Command Files.
|
||||
* /proc: Process Information.
|
||||
* @: Arrays.
|
||||
* a.out and C++: Cplus expressions.
|
||||
* abbreviation: Command Syntax.
|
||||
* active targets: Active Targets.
|
||||
* add-shared-symbol-file: Files.
|
||||
* add-symbol-file: Files.
|
||||
* Alpha stack: Alpha/MIPS Stack.
|
||||
* AMD 29K register stack: Registers.
|
||||
* AMD EB29K: Target Commands.
|
||||
* AMD29K via UDI: UDI29K Remote.
|
||||
* arguments (to your program): Arguments.
|
||||
* artificial array: Arrays.
|
||||
* assembly instructions: Machine Code.
|
||||
* assignment: Assignment.
|
||||
* attach: Attach.
|
||||
* automatic display: Auto Display.
|
||||
* automatic thread selection: Threads.
|
||||
* awatch: Set Watchpoints.
|
||||
* b: Set Breaks.
|
||||
* backtrace: Backtrace.
|
||||
* backtraces: Backtrace.
|
||||
* bell-style: Readline Init File Syntax.
|
||||
* break: Set Breaks.
|
||||
* break ... thread THREADNO: Thread Stops.
|
||||
* break in overloaded functions: Debugging C plus plus.
|
||||
* breakpoint commands: Break Commands.
|
||||
* breakpoint conditions: Conditions.
|
||||
* breakpoint numbers: Breakpoints.
|
||||
* breakpoint on events: Breakpoints.
|
||||
* breakpoint on memory address: Breakpoints.
|
||||
* breakpoint on variable modification: Breakpoints.
|
||||
* breakpoint subroutine, remote: Stub Contents.
|
||||
* breakpoints: Breakpoints.
|
||||
* breakpoints and threads: Thread Stops.
|
||||
* bt: Backtrace.
|
||||
* bug criteria: Bug Criteria.
|
||||
* bug reports: Bug Reporting.
|
||||
* bugs in GDB: GDB Bugs.
|
||||
* c: Continuing and Stepping.
|
||||
* C and C++: C.
|
||||
* C and C++ checks: C Checks.
|
||||
* C and C++ constants: C Constants.
|
||||
* C and C++ defaults: C Defaults.
|
||||
* C and C++ operators: C.
|
||||
* C++: C.
|
||||
* C++ and object formats: Cplus expressions.
|
||||
* C++ exception handling: Debugging C plus plus.
|
||||
* C++ scope resolution: Variables.
|
||||
* C++ support, not in COFF: Cplus expressions.
|
||||
* C++ symbol decoding style: Print Settings.
|
||||
* C++ symbol display: Debugging C plus plus.
|
||||
* call: Calling.
|
||||
* call overloaded functions: Cplus expressions.
|
||||
* call stack: Stack.
|
||||
* calling functions: Calling.
|
||||
* calling make: Shell Commands.
|
||||
* casts, to view memory: Expressions.
|
||||
* catch: Set Catchpoints.
|
||||
* catch catch: Set Catchpoints.
|
||||
* catch exceptions: Frame Info.
|
||||
* catch exec: Set Catchpoints.
|
||||
* catch fork: Set Catchpoints.
|
||||
* catch load: Set Catchpoints.
|
||||
* catch throw: Set Catchpoints.
|
||||
* catch unload: Set Catchpoints.
|
||||
* catch vfork: Set Catchpoints.
|
||||
* catchpoints <1>: Set Catchpoints.
|
||||
* catchpoints: Breakpoints.
|
||||
* cd: Working Directory.
|
||||
* cdir: Source Path.
|
||||
* checks, range: Type Checking.
|
||||
* checks, type: Checks.
|
||||
* checksum, for GDB remote: Protocol.
|
||||
* choosing target byte order: Byte Order.
|
||||
* clear: Delete Breaks.
|
||||
* clearing breakpoints, watchpoints, catchpoints: Delete Breaks.
|
||||
* COFF versus C++: Cplus expressions.
|
||||
* colon, doubled as scope operator: M2 Scope.
|
||||
* colon-colon <1>: Variables.
|
||||
* colon-colon: M2 Scope.
|
||||
* command editing: Readline Bare Essentials.
|
||||
* command files <1>: Hooks.
|
||||
* command files: Command Files.
|
||||
* command line editing: Editing.
|
||||
* commands: Break Commands.
|
||||
* commands for C++: Debugging C plus plus.
|
||||
* commands to STDBUG (ST2000): ST2000 Remote.
|
||||
* comment: Command Syntax.
|
||||
* comment-begin: Readline Init File Syntax.
|
||||
* compilation directory: Source Path.
|
||||
* Compiling: Sparclet Remote.
|
||||
* complete: Help.
|
||||
* completion: Completion.
|
||||
* completion of quoted strings: Completion.
|
||||
* completion-query-items: Readline Init File Syntax.
|
||||
* condition: Conditions.
|
||||
* conditional breakpoints: Conditions.
|
||||
* configuring GDB: Installing GDB.
|
||||
* confirmation: Messages/Warnings.
|
||||
* connect (to STDBUG): ST2000 Remote.
|
||||
* continue: Continuing and Stepping.
|
||||
* continuing: Continuing and Stepping.
|
||||
* continuing threads: Thread Stops.
|
||||
* control C, and remote debugging: Bootstrapping.
|
||||
* controlling terminal: Input/Output.
|
||||
* convenience variables: Convenience Vars.
|
||||
* convert-meta: Readline Init File Syntax.
|
||||
* core: Files.
|
||||
* core dump file: Files.
|
||||
* core-file: Files.
|
||||
* CPU simulator: Simulator.
|
||||
* crash of debugger: Bug Criteria.
|
||||
* current directory: Source Path.
|
||||
* current thread: Threads.
|
||||
* cwd: Source Path.
|
||||
* d: Delete Breaks.
|
||||
* debugger crash: Bug Criteria.
|
||||
* debugging optimized code: Compilation.
|
||||
* debugging stub, example: Protocol.
|
||||
* debugging target: Targets.
|
||||
* define: Define.
|
||||
* delete: Delete Breaks.
|
||||
* delete breakpoints: Delete Breaks.
|
||||
* delete display: Auto Display.
|
||||
* deleting breakpoints, watchpoints, catchpoints: Delete Breaks.
|
||||
* demangling: Print Settings.
|
||||
* detach: Attach.
|
||||
* device: Hitachi Boards.
|
||||
* dir: Source Path.
|
||||
* directories for source files: Source Path.
|
||||
* directory: Source Path.
|
||||
* directory, compilation: Source Path.
|
||||
* directory, current: Source Path.
|
||||
* dis: Disabling.
|
||||
* disable: Disabling.
|
||||
* disable breakpoints: Disabling.
|
||||
* disable display: Auto Display.
|
||||
* disable-completion: Readline Init File Syntax.
|
||||
* disassemble: Machine Code.
|
||||
* display: Auto Display.
|
||||
* display of expressions: Auto Display.
|
||||
* do: Selection.
|
||||
* document: Define.
|
||||
* documentation: Formatting Documentation.
|
||||
* down: Selection.
|
||||
* down-silently: Selection.
|
||||
* download to H8/300 or H8/500: Target Commands.
|
||||
* download to Hitachi SH: Target Commands.
|
||||
* download to Nindy-960: Target Commands.
|
||||
* download to Sparclet: Sparclet Download.
|
||||
* download to VxWorks: VxWorks Download.
|
||||
* dynamic linking: Files.
|
||||
* eb.log: Remote Log.
|
||||
* EB29K board: EB29K Remote.
|
||||
* EBMON: Comms (EB29K).
|
||||
* echo: Output.
|
||||
* ECOFF and C++: Cplus expressions.
|
||||
* editing: Editing.
|
||||
* editing command lines: Readline Bare Essentials.
|
||||
* editing-mode: Readline Init File Syntax.
|
||||
* ELF/DWARF and C++: Cplus expressions.
|
||||
* ELF/stabs and C++: Cplus expressions.
|
||||
* else: Define.
|
||||
* Emacs: Emacs.
|
||||
* enable: Disabling.
|
||||
* enable breakpoints: Disabling.
|
||||
* enable display: Auto Display.
|
||||
* enable-keypad: Readline Init File Syntax.
|
||||
* end: Break Commands.
|
||||
* entering numbers: Numbers.
|
||||
* environment (of your program): Environment.
|
||||
* error on valid input: Bug Criteria.
|
||||
* event designators: Event Designators.
|
||||
* event handling: Set Catchpoints.
|
||||
* examining data: Data.
|
||||
* examining memory: Memory.
|
||||
* exception handlers <1>: Frame Info.
|
||||
* exception handlers: Set Catchpoints.
|
||||
* exceptionHandler: Bootstrapping.
|
||||
* exec-file: Files.
|
||||
* executable file: Files.
|
||||
* exiting GDB: Quitting GDB.
|
||||
* expand-tilde: Readline Init File Syntax.
|
||||
* expansion: History Interaction.
|
||||
* expressions: Expressions.
|
||||
* expressions in C or C++: C.
|
||||
* expressions in C++: Cplus expressions.
|
||||
* expressions in Modula-2: Modula-2.
|
||||
* f: Selection.
|
||||
* fatal signal: Bug Criteria.
|
||||
* fatal signals: Signals.
|
||||
* fg: Continuing and Stepping.
|
||||
* file: Files.
|
||||
* finish: Continuing and Stepping.
|
||||
* flinching: Messages/Warnings.
|
||||
* floating point: Floating Point Hardware.
|
||||
* floating point registers: Registers.
|
||||
* floating point, MIPS remote: MIPS Remote.
|
||||
* flush_i_cache: Bootstrapping.
|
||||
* focus of debugging: Threads.
|
||||
* foo: Symbol Errors.
|
||||
* fork, debugging programs which call: Processes.
|
||||
* format options: Print Settings.
|
||||
* formatted output: Output Formats.
|
||||
* Fortran: Summary.
|
||||
* forward-search: Search.
|
||||
* frame <1>: Selection.
|
||||
* frame: Frames.
|
||||
* frame number: Frames.
|
||||
* frame pointer: Frames.
|
||||
* frameless execution: Frames.
|
||||
* Fujitsu: Remote Serial.
|
||||
* g++: C.
|
||||
* GDB bugs, reporting: Bug Reporting.
|
||||
* GDB reference card: Formatting Documentation.
|
||||
* GDBHISTFILE: History.
|
||||
* gdbserve.nlm: NetWare.
|
||||
* gdbserver: Server.
|
||||
* getDebugChar: Bootstrapping.
|
||||
* GNU C++: C.
|
||||
* GNU Emacs: Emacs.
|
||||
* h: Help.
|
||||
* H8/300 or H8/500 download: Target Commands.
|
||||
* H8/300 or H8/500 simulator: Simulator.
|
||||
* handle: Signals.
|
||||
* handle_exception: Stub Contents.
|
||||
* handling signals: Signals.
|
||||
* hardware watchpoints: Set Watchpoints.
|
||||
* hbreak: Set Breaks.
|
||||
* help: Help.
|
||||
* help target: Target Commands.
|
||||
* help user-defined: Define.
|
||||
* heuristic-fence-post (Alpha,MIPS): Alpha/MIPS Stack.
|
||||
* history expansion: History.
|
||||
* history file: History.
|
||||
* history number: Value History.
|
||||
* history save: History.
|
||||
* history size: History.
|
||||
* history substitution: History.
|
||||
* Hitachi: Remote Serial.
|
||||
* Hitachi SH download: Target Commands.
|
||||
* Hitachi SH simulator: Simulator.
|
||||
* horizontal-scroll-mode: Readline Init File Syntax.
|
||||
* i: Help.
|
||||
* i/o: Input/Output.
|
||||
* i386: Remote Serial.
|
||||
* i386-stub.c: Remote Serial.
|
||||
* i960: i960-Nindy Remote.
|
||||
* if: Define.
|
||||
* ignore: Conditions.
|
||||
* ignore count (of breakpoint): Conditions.
|
||||
* INCLUDE_RDB: VxWorks Remote.
|
||||
* info: Help.
|
||||
* info address: Symbols.
|
||||
* info all-registers: Registers.
|
||||
* info args: Frame Info.
|
||||
* info breakpoints: Set Breaks.
|
||||
* info catch: Frame Info.
|
||||
* info display: Auto Display.
|
||||
* info extensions: Show.
|
||||
* info f: Frame Info.
|
||||
* info files: Files.
|
||||
* info float: Floating Point Hardware.
|
||||
* info frame <1>: Frame Info.
|
||||
* info frame: Show.
|
||||
* info functions: Symbols.
|
||||
* info line: Machine Code.
|
||||
* info locals: Frame Info.
|
||||
* info proc: Process Information.
|
||||
* info proc id: Process Information.
|
||||
* info proc mappings: Process Information.
|
||||
* info proc status: Process Information.
|
||||
* info proc times: Process Information.
|
||||
* info program: Stopping.
|
||||
* info registers: Registers.
|
||||
* info s: Backtrace.
|
||||
* info set: Help.
|
||||
* info share: Files.
|
||||
* info sharedlibrary: Files.
|
||||
* info signals: Signals.
|
||||
* info source <1>: Symbols.
|
||||
* info source: Show.
|
||||
* info sources: Symbols.
|
||||
* info stack: Backtrace.
|
||||
* info target: Files.
|
||||
* info terminal: Input/Output.
|
||||
* info threads: Threads.
|
||||
* info types: Symbols.
|
||||
* info variables: Symbols.
|
||||
* info watchpoints: Set Watchpoints.
|
||||
* inheritance: Debugging C plus plus.
|
||||
* init file: Command Files.
|
||||
* init file name: Command Files.
|
||||
* initial frame: Frames.
|
||||
* initialization file, readline: Readline Init File.
|
||||
* innermost frame: Frames.
|
||||
* input-meta: Readline Init File Syntax.
|
||||
* inspect: Data.
|
||||
* installation: Installing GDB.
|
||||
* instructions, assembly: Machine Code.
|
||||
* Intel: Remote Serial.
|
||||
* interaction, readline: Readline Interaction.
|
||||
* internal GDB breakpoints: Set Breaks.
|
||||
* interrupt: Quitting GDB.
|
||||
* interrupting remote programs: Debug Session.
|
||||
* interrupting remote targets: Bootstrapping.
|
||||
* invalid input: Bug Criteria.
|
||||
* jump: Jumping.
|
||||
* keymap: Readline Init File Syntax.
|
||||
* kill: Kill Process.
|
||||
* kill ring: Readline Killing Commands.
|
||||
* killing text: Readline Killing Commands.
|
||||
* l: List.
|
||||
* languages: Languages.
|
||||
* latest breakpoint: Set Breaks.
|
||||
* leaving GDB: Quitting GDB.
|
||||
* linespec: List.
|
||||
* list: List.
|
||||
* listing machine instructions: Machine Code.
|
||||
* load FILENAME: Target Commands.
|
||||
* log file for EB29K: Remote Log.
|
||||
* m680x0: Remote Serial.
|
||||
* m68k-stub.c: Remote Serial.
|
||||
* machine instructions: Machine Code.
|
||||
* maint info breakpoints: Set Breaks.
|
||||
* maint print psymbols: Symbols.
|
||||
* maint print symbols: Symbols.
|
||||
* make: Shell Commands.
|
||||
* mapped: Files.
|
||||
* mark-modified-lines: Readline Init File Syntax.
|
||||
* member functions: Cplus expressions.
|
||||
* memory models, H8/500: Hitachi Special.
|
||||
* memory tracing: Breakpoints.
|
||||
* memory, viewing as typed object: Expressions.
|
||||
* memory-mapped symbol file: Files.
|
||||
* memset: Bootstrapping.
|
||||
* meta-flag: Readline Init File Syntax.
|
||||
* MIPS boards: MIPS Remote.
|
||||
* MIPS remote floating point: MIPS Remote.
|
||||
* MIPS remotedebug protocol: MIPS Remote.
|
||||
* MIPS stack: Alpha/MIPS Stack.
|
||||
* Modula-2: Modula-2.
|
||||
* Modula-2 built-ins: M2 Operators.
|
||||
* Modula-2 checks: M2 Checks.
|
||||
* Modula-2 constants: Built-In Func/Proc.
|
||||
* Modula-2 defaults: M2 Defaults.
|
||||
* Modula-2 operators: M2 Operators.
|
||||
* Modula-2, deviations from: Deviations.
|
||||
* Motorola 680x0: Remote Serial.
|
||||
* multiple processes: Processes.
|
||||
* multiple targets: Active Targets.
|
||||
* multiple threads: Threads.
|
||||
* n: Continuing and Stepping.
|
||||
* names of symbols: Symbols.
|
||||
* namespace in C++: Cplus expressions.
|
||||
* negative breakpoint numbers: Set Breaks.
|
||||
* New SYSTAG: Threads.
|
||||
* next: Continuing and Stepping.
|
||||
* nexti: Continuing and Stepping.
|
||||
* ni: Continuing and Stepping.
|
||||
* Nindy: i960-Nindy Remote.
|
||||
* notation, readline: Readline Bare Essentials.
|
||||
* number representation: Numbers.
|
||||
* numbers for breakpoints: Breakpoints.
|
||||
* object formats and C++: Cplus expressions.
|
||||
* online documentation: Help.
|
||||
* optimized code, debugging: Compilation.
|
||||
* outermost frame: Frames.
|
||||
* output: Output.
|
||||
* output formats: Output Formats.
|
||||
* output-meta: Readline Init File Syntax.
|
||||
* overloading: Breakpoint Menus.
|
||||
* overloading in C++: Debugging C plus plus.
|
||||
* packets, reporting on stdout: Protocol.
|
||||
* partial symbol dump: Symbols.
|
||||
* patching binaries: Patching.
|
||||
* path: Environment.
|
||||
* pauses in output: Screen Size.
|
||||
* pipes: Starting.
|
||||
* pointer, finding referent: Print Settings.
|
||||
* print: Data.
|
||||
* print settings: Print Settings.
|
||||
* printf: Output.
|
||||
* printing data: Data.
|
||||
* process image: Process Information.
|
||||
* processes, multiple: Processes.
|
||||
* prompt: Prompt.
|
||||
* protocol, GDB remote serial: Protocol.
|
||||
* ptype: Symbols.
|
||||
* putDebugChar: Bootstrapping.
|
||||
* pwd: Working Directory.
|
||||
* q: Quitting GDB.
|
||||
* quit [EXPRESSION]: Quitting GDB.
|
||||
* quotes in commands: Completion.
|
||||
* quoting names: Symbols.
|
||||
* raise exceptions: Set Catchpoints.
|
||||
* range checking: Type Checking.
|
||||
* rbreak: Set Breaks.
|
||||
* reading symbols immediately: Files.
|
||||
* readline: Editing.
|
||||
* readnow: Files.
|
||||
* redirection: Input/Output.
|
||||
* reference card: Formatting Documentation.
|
||||
* reference declarations: Cplus expressions.
|
||||
* register stack, AMD29K: Registers.
|
||||
* registers: Registers.
|
||||
* regular expression: Set Breaks.
|
||||
* reloading symbols: Symbols.
|
||||
* remote connection without stubs: Server.
|
||||
* remote debugging: Remote.
|
||||
* remote programs, interrupting: Debug Session.
|
||||
* remote serial debugging summary: Debug Session.
|
||||
* remote serial debugging, overview: Remote Serial.
|
||||
* remote serial protocol: Protocol.
|
||||
* remote serial stub: Stub Contents.
|
||||
* remote serial stub list: Remote Serial.
|
||||
* remote serial stub, initialization: Stub Contents.
|
||||
* remote serial stub, main routine: Stub Contents.
|
||||
* remote stub, example: Protocol.
|
||||
* remote stub, support routines: Bootstrapping.
|
||||
* remotedebug, MIPS protocol: MIPS Remote.
|
||||
* remotetimeout: Sparclet Remote.
|
||||
* repeating commands: Command Syntax.
|
||||
* reporting bugs in GDB: GDB Bugs.
|
||||
* reset: Nindy Reset.
|
||||
* response time, MIPS debugging: Alpha/MIPS Stack.
|
||||
* resuming execution: Continuing and Stepping.
|
||||
* RET: Command Syntax.
|
||||
* retransmit-timeout, MIPS protocol: MIPS Remote.
|
||||
* return: Returning.
|
||||
* returning from a function: Returning.
|
||||
* reverse-search: Search.
|
||||
* run: Starting.
|
||||
* running: Starting.
|
||||
* Running: Sparclet Remote.
|
||||
* running 29K programs: EB29K Remote.
|
||||
* running and debugging Sparclet programs: Sparclet Execution.
|
||||
* running VxWorks tasks: VxWorks Attach.
|
||||
* rwatch: Set Watchpoints.
|
||||
* s: Continuing and Stepping.
|
||||
* saving symbol table: Files.
|
||||
* scope: M2 Scope.
|
||||
* search: Search.
|
||||
* searching: Search.
|
||||
* section: Files.
|
||||
* select-frame: Frames.
|
||||
* selected frame: Stack.
|
||||
* serial connections, debugging: Protocol.
|
||||
* serial device, Hitachi micros: Hitachi Boards.
|
||||
* serial line speed, Hitachi micros: Hitachi Boards.
|
||||
* serial line, target remote: Debug Session.
|
||||
* serial protocol, GDB remote: Protocol.
|
||||
* set: Help.
|
||||
* set args: Arguments.
|
||||
* set assembly-language: Machine Code.
|
||||
* set check <1>: Type Checking.
|
||||
* set check: Range Checking.
|
||||
* set check range: Range Checking.
|
||||
* set check type: Type Checking.
|
||||
* set complaints: Messages/Warnings.
|
||||
* set confirm: Messages/Warnings.
|
||||
* set demangle-style: Print Settings.
|
||||
* set editing: Editing.
|
||||
* set endian auto: Byte Order.
|
||||
* set endian big: Byte Order.
|
||||
* set endian little: Byte Order.
|
||||
* set environment: Environment.
|
||||
* set extension-language: Show.
|
||||
* set gnutarget: Target Commands.
|
||||
* set height: Screen Size.
|
||||
* set history expansion: History.
|
||||
* set history filename: History.
|
||||
* set history save: History.
|
||||
* set history size: History.
|
||||
* set input-radix: Numbers.
|
||||
* set language: Manually.
|
||||
* set listsize: List.
|
||||
* set machine: Hitachi Special.
|
||||
* set memory MOD: Hitachi Special.
|
||||
* set mipsfpu: MIPS Remote.
|
||||
* set output-radix: Numbers.
|
||||
* set print address: Print Settings.
|
||||
* set print array: Print Settings.
|
||||
* set print asm-demangle: Print Settings.
|
||||
* set print demangle: Print Settings.
|
||||
* set print elements: Print Settings.
|
||||
* set print max-symbolic-offset: Print Settings.
|
||||
* set print null-stop: Print Settings.
|
||||
* set print object: Print Settings.
|
||||
* set print pretty: Print Settings.
|
||||
* set print sevenbit-strings: Print Settings.
|
||||
* set print static-members: Print Settings.
|
||||
* set print symbol-filename: Print Settings.
|
||||
* set print union: Print Settings.
|
||||
* set print vtbl: Print Settings.
|
||||
* set processor ARGS: MIPS Remote.
|
||||
* set prompt: Prompt.
|
||||
* set remotedebug <1>: Protocol.
|
||||
* set remotedebug: MIPS Remote.
|
||||
* set retransmit-timeout: MIPS Remote.
|
||||
* set rstack_high_address: Registers.
|
||||
* set symbol-reloading: Symbols.
|
||||
* set timeout: MIPS Remote.
|
||||
* set variable: Assignment.
|
||||
* set verbose: Messages/Warnings.
|
||||
* set width: Screen Size.
|
||||
* set write: Patching.
|
||||
* set_debug_traps: Stub Contents.
|
||||
* setting variables: Assignment.
|
||||
* setting watchpoints: Set Watchpoints.
|
||||
* SH: Remote Serial.
|
||||
* sh-stub.c: Remote Serial.
|
||||
* share: Files.
|
||||
* shared libraries: Files.
|
||||
* sharedlibrary: Files.
|
||||
* shell: Shell Commands.
|
||||
* shell escape: Shell Commands.
|
||||
* show: Help.
|
||||
* show args: Arguments.
|
||||
* show check range: Range Checking.
|
||||
* show check type: Type Checking.
|
||||
* show commands: History.
|
||||
* show complaints: Messages/Warnings.
|
||||
* show confirm: Messages/Warnings.
|
||||
* show convenience: Convenience Vars.
|
||||
* show copying: Help.
|
||||
* show demangle-style: Print Settings.
|
||||
* show directories: Source Path.
|
||||
* show editing: Editing.
|
||||
* show endian: Byte Order.
|
||||
* show environment: Environment.
|
||||
* show gnutarget: Target Commands.
|
||||
* show height: Screen Size.
|
||||
* show history: History.
|
||||
* show input-radix: Numbers.
|
||||
* show language: Show.
|
||||
* show listsize: List.
|
||||
* show machine: Hitachi Special.
|
||||
* show mipsfpu: MIPS Remote.
|
||||
* show output-radix: Numbers.
|
||||
* show paths: Environment.
|
||||
* show print address: Print Settings.
|
||||
* show print array: Print Settings.
|
||||
* show print asm-demangle: Print Settings.
|
||||
* show print demangle: Print Settings.
|
||||
* show print elements: Print Settings.
|
||||
* show print max-symbolic-offset: Print Settings.
|
||||
* show print object: Print Settings.
|
||||
* show print pretty: Print Settings.
|
||||
* show print sevenbit-strings: Print Settings.
|
||||
* show print static-members: Print Settings.
|
||||
* show print symbol-filename: Print Settings.
|
||||
* show print union: Print Settings.
|
||||
* show print vtbl: Print Settings.
|
||||
* show processor: MIPS Remote.
|
||||
* show prompt: Prompt.
|
||||
* show remotedebug <1>: MIPS Remote.
|
||||
* show remotedebug: Protocol.
|
||||
* show retransmit-timeout: MIPS Remote.
|
||||
* show rstack_high_address: Registers.
|
||||
* show symbol-reloading: Symbols.
|
||||
* show timeout: MIPS Remote.
|
||||
* show user: Define.
|
||||
* show values: Value History.
|
||||
* show verbose: Messages/Warnings.
|
||||
* show version: Help.
|
||||
* show warranty: Help.
|
||||
* show width: Screen Size.
|
||||
* show write: Patching.
|
||||
* show-all-if-ambiguous: Readline Init File Syntax.
|
||||
* si: Continuing and Stepping.
|
||||
* signal: Signaling.
|
||||
* signals: Signals.
|
||||
* silent: Break Commands.
|
||||
* sim: Simulator.
|
||||
* simulator: Simulator.
|
||||
* simulator, H8/300 or H8/500: Simulator.
|
||||
* simulator, Hitachi SH: Simulator.
|
||||
* simulator, Z8000: Simulator.
|
||||
* size of screen: Screen Size.
|
||||
* software watchpoints: Set Watchpoints.
|
||||
* source: Command Files.
|
||||
* source path: Source Path.
|
||||
* Sparc: Remote Serial.
|
||||
* sparc-stub.c: Remote Serial.
|
||||
* sparcl-stub.c: Remote Serial.
|
||||
* Sparclet: Sparclet Remote.
|
||||
* SparcLite: Remote Serial.
|
||||
* speed: Hitachi Boards.
|
||||
* ST2000 auxiliary commands: ST2000 Remote.
|
||||
* st2000 CMD: ST2000 Remote.
|
||||
* stack frame: Frames.
|
||||
* stack on Alpha: Alpha/MIPS Stack.
|
||||
* stack on MIPS: Alpha/MIPS Stack.
|
||||
* stack traces: Backtrace.
|
||||
* stacking targets: Active Targets.
|
||||
* starting: Starting.
|
||||
* STDBUG commands (ST2000): ST2000 Remote.
|
||||
* step: Continuing and Stepping.
|
||||
* stepi: Continuing and Stepping.
|
||||
* stepping: Continuing and Stepping.
|
||||
* stopped threads: Thread Stops.
|
||||
* stub example, remote debugging: Protocol.
|
||||
* stupid questions: Messages/Warnings.
|
||||
* switching threads: Threads.
|
||||
* switching threads automatically: Threads.
|
||||
* symbol decoding style, C++: Print Settings.
|
||||
* symbol dump: Symbols.
|
||||
* symbol names: Symbols.
|
||||
* symbol overloading: Breakpoint Menus.
|
||||
* symbol table: Files.
|
||||
* symbol-file: Files.
|
||||
* symbols, reading immediately: Files.
|
||||
* target: Targets.
|
||||
* target abug: Target Commands.
|
||||
* target adapt: Target Commands.
|
||||
* target amd-eb: Target Commands.
|
||||
* target array: Target Commands.
|
||||
* target bug: Target Commands.
|
||||
* target byte order: Byte Order.
|
||||
* target core: Target Commands.
|
||||
* target cpu32bug: Target Commands.
|
||||
* target dbug: Target Commands.
|
||||
* target ddb: Target Commands.
|
||||
* target ddb PORT: MIPS Remote.
|
||||
* target dink32: Target Commands.
|
||||
* target e7000 <1>: Hitachi ICE.
|
||||
* target e7000: Target Commands.
|
||||
* target es1800: Target Commands.
|
||||
* target est: Target Commands.
|
||||
* target exec: Target Commands.
|
||||
* target hms: Target Commands.
|
||||
* target lsi: Target Commands.
|
||||
* target lsi PORT: MIPS Remote.
|
||||
* target m32r: Target Commands.
|
||||
* target mips: Target Commands.
|
||||
* target mips PORT: MIPS Remote.
|
||||
* target mon960: Target Commands.
|
||||
* target nindy: Target Commands.
|
||||
* target nrom: Target Commands.
|
||||
* target op50n: Target Commands.
|
||||
* target pmon: Target Commands.
|
||||
* target pmon PORT: MIPS Remote.
|
||||
* target ppcbug: Target Commands.
|
||||
* target ppcbug1: Target Commands.
|
||||
* target r3900: Target Commands.
|
||||
* target rdi: Target Commands.
|
||||
* target rdp: Target Commands.
|
||||
* target remote: Target Commands.
|
||||
* target rom68k: Target Commands.
|
||||
* target rombug: Target Commands.
|
||||
* target sds: Target Commands.
|
||||
* target sh3: Target Commands.
|
||||
* target sh3e: Target Commands.
|
||||
* target sim <1>: Target Commands.
|
||||
* target sim: Simulator.
|
||||
* target sparclite: Target Commands.
|
||||
* target st2000: Target Commands.
|
||||
* target udi: Target Commands.
|
||||
* target vxworks: Target Commands.
|
||||
* target w89k: Target Commands.
|
||||
* tbreak: Set Breaks.
|
||||
* TCP port, target remote: Debug Session.
|
||||
* terminal: Input/Output.
|
||||
* thbreak: Set Breaks.
|
||||
* this: Cplus expressions.
|
||||
* thread apply: Threads.
|
||||
* thread breakpoints: Thread Stops.
|
||||
* thread identifier (GDB): Threads.
|
||||
* thread identifier (system): Threads.
|
||||
* thread number: Threads.
|
||||
* thread THREADNO: Threads.
|
||||
* threads and watchpoints: Set Watchpoints.
|
||||
* threads of execution: Threads.
|
||||
* threads, automatic switching: Threads.
|
||||
* threads, continuing: Thread Stops.
|
||||
* threads, stopped: Thread Stops.
|
||||
* timeout, MIPS protocol: MIPS Remote.
|
||||
* tracebacks: Backtrace.
|
||||
* tty: Input/Output.
|
||||
* type casting memory: Expressions.
|
||||
* type checking: Checks.
|
||||
* type conversions in C++: Cplus expressions.
|
||||
* u: Continuing and Stepping.
|
||||
* UDI: UDI29K Remote.
|
||||
* udi: UDI29K Remote.
|
||||
* undisplay: Auto Display.
|
||||
* unknown address, locating: Output Formats.
|
||||
* unset environment: Environment.
|
||||
* until: Continuing and Stepping.
|
||||
* up: Selection.
|
||||
* up-silently: Selection.
|
||||
* user-defined command: Define.
|
||||
* value history: Value History.
|
||||
* variable name conflict: Variables.
|
||||
* variable values, wrong: Variables.
|
||||
* variables, setting: Assignment.
|
||||
* version number: Help.
|
||||
* visible-stats: Readline Init File Syntax.
|
||||
* VxWorks: VxWorks Remote.
|
||||
* vxworks-timeout: VxWorks Remote.
|
||||
* watch: Set Watchpoints.
|
||||
* watchpoints: Breakpoints.
|
||||
* watchpoints and threads: Set Watchpoints.
|
||||
* whatis: Symbols.
|
||||
* where: Backtrace.
|
||||
* while: Define.
|
||||
* wild pointer, interpreting: Print Settings.
|
||||
* word completion: Completion.
|
||||
* working directory: Source Path.
|
||||
* working directory (of your program): Working Directory.
|
||||
* working language: Languages.
|
||||
* writing into corefiles: Patching.
|
||||
* writing into executables: Patching.
|
||||
* wrong values: Variables.
|
||||
* x: Memory.
|
||||
* XCOFF and C++: Cplus expressions.
|
||||
* yanking text: Readline Killing Commands.
|
||||
* Z8000 simulator: Simulator.
|
||||
* {TYPE}: Expressions.
|
||||
|
||||
|
||||
1161
gdb/doc/gdb.info-2
Normal file
1161
gdb/doc/gdb.info-2
Normal file
File diff suppressed because it is too large
Load Diff
1224
gdb/doc/gdb.info-3
Normal file
1224
gdb/doc/gdb.info-3
Normal file
File diff suppressed because it is too large
Load Diff
1279
gdb/doc/gdb.info-4
Normal file
1279
gdb/doc/gdb.info-4
Normal file
File diff suppressed because it is too large
Load Diff
1185
gdb/doc/gdb.info-5
Normal file
1185
gdb/doc/gdb.info-5
Normal file
File diff suppressed because it is too large
Load Diff
1226
gdb/doc/gdb.info-6
Normal file
1226
gdb/doc/gdb.info-6
Normal file
File diff suppressed because it is too large
Load Diff
1302
gdb/doc/gdb.info-7
Normal file
1302
gdb/doc/gdb.info-7
Normal file
File diff suppressed because it is too large
Load Diff
1308
gdb/doc/gdb.info-8
Normal file
1308
gdb/doc/gdb.info-8
Normal file
File diff suppressed because it is too large
Load Diff
639
gdb/doc/gdb.info-9
Normal file
639
gdb/doc/gdb.info-9
Normal file
@@ -0,0 +1,639 @@
|
||||
This is Info file ./gdb.info, produced by Makeinfo version 1.68 from
|
||||
the input file gdb.texinfo.
|
||||
|
||||
START-INFO-DIR-ENTRY
|
||||
* Gdb: (gdb). The GNU debugger.
|
||||
END-INFO-DIR-ENTRY
|
||||
This file documents the GNU debugger GDB.
|
||||
|
||||
This is the Seventh Edition, February 1999, of `Debugging with GDB:
|
||||
the GNU Source-Level Debugger' for GDB Version 4.18.
|
||||
|
||||
Copyright (C) 1988-1999 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to make and distribute verbatim copies of this
|
||||
manual provided the copyright notice and this permission notice are
|
||||
preserved on all copies.
|
||||
|
||||
Permission is granted to copy and distribute modified versions of
|
||||
this manual under the conditions for verbatim copying, provided also
|
||||
that the entire resulting derived work is distributed under the terms
|
||||
of a permission notice identical to this one.
|
||||
|
||||
Permission is granted to copy and distribute translations of this
|
||||
manual into another language, under the above conditions for modified
|
||||
versions.
|
||||
|
||||
|
||||
File: gdb.info, Node: Commands For Completion, Next: Keyboard Macros, Prev: Numeric Arguments, Up: Bindable Readline Commands
|
||||
|
||||
Letting Readline Type For You
|
||||
-----------------------------
|
||||
|
||||
`complete (TAB)'
|
||||
Attempt to do completion on the text before the cursor. This is
|
||||
application-specific. Generally, if you are typing a filename
|
||||
argument, you can do filename completion; if you are typing a
|
||||
command, you can do command completion; if you are typing in a
|
||||
symbol to GDB, you can do symbol name completion; if you are
|
||||
typing in a variable to Bash, you can do variable name completion,
|
||||
and so on.
|
||||
|
||||
`possible-completions (M-?)'
|
||||
List the possible completions of the text before the cursor.
|
||||
|
||||
`insert-completions (M-*)'
|
||||
Insert all completions of the text before point that would have
|
||||
been generated by `possible-completions'.
|
||||
|
||||
`menu-complete ()'
|
||||
Similar to `complete', but replaces the word to be completed with
|
||||
a single match from the list of possible completions. Repeated
|
||||
execution of `menu-complete' steps through the list of possible
|
||||
completions, inserting each match in turn. At the end of the list
|
||||
of completions, the bell is rung and the original text is restored.
|
||||
An argument of N moves N positions forward in the list of matches;
|
||||
a negative argument may be used to move backward through the list.
|
||||
This command is intended to be bound to `TAB', but is unbound by
|
||||
default.
|
||||
|
||||
|
||||
File: gdb.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands
|
||||
|
||||
Keyboard Macros
|
||||
---------------
|
||||
|
||||
`start-kbd-macro (C-x ()'
|
||||
Begin saving the characters typed into the current keyboard macro.
|
||||
|
||||
`end-kbd-macro (C-x ))'
|
||||
Stop saving the characters typed into the current keyboard macro
|
||||
and save the definition.
|
||||
|
||||
`call-last-kbd-macro (C-x e)'
|
||||
Re-execute the last keyboard macro defined, by making the
|
||||
characters in the macro appear as if typed at the keyboard.
|
||||
|
||||
|
||||
File: gdb.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands
|
||||
|
||||
Some Miscellaneous Commands
|
||||
---------------------------
|
||||
|
||||
`re-read-init-file (C-x C-r)'
|
||||
Read in the contents of the inputrc file, and incorporate any
|
||||
bindings or variable assignments found there.
|
||||
|
||||
`abort (C-g)'
|
||||
Abort the current editing command and ring the terminal's bell
|
||||
(subject to the setting of `bell-style').
|
||||
|
||||
`do-uppercase-version (M-a, M-b, M-X, ...)'
|
||||
If the metafied character X is lowercase, run the command that is
|
||||
bound to the corresponding uppercase character.
|
||||
|
||||
`prefix-meta (ESC)'
|
||||
Make the next character typed be metafied. This is for keyboards
|
||||
without a meta key. Typing `ESC f' is equivalent to typing `M-f'.
|
||||
|
||||
`undo (C-_, C-x C-u)'
|
||||
Incremental undo, separately remembered for each line.
|
||||
|
||||
`revert-line (M-r)'
|
||||
Undo all changes made to this line. This is like executing the
|
||||
`undo' command enough times to get back to the beginning.
|
||||
|
||||
`tilde-expand (M-~)'
|
||||
Perform tilde expansion on the current word.
|
||||
|
||||
`set-mark (C-@)'
|
||||
Set the mark to the current point. If a numeric argument is
|
||||
supplied, the mark is set to that position.
|
||||
|
||||
`exchange-point-and-mark (C-x C-x)'
|
||||
Swap the point with the mark. The current cursor position is set
|
||||
to the saved position, and the old cursor position is saved as the
|
||||
mark.
|
||||
|
||||
`character-search (C-])'
|
||||
A character is read and point is moved to the next occurrence of
|
||||
that character. A negative count searches for previous
|
||||
occurrences.
|
||||
|
||||
`character-search-backward (M-C-])'
|
||||
A character is read and point is moved to the previous occurrence
|
||||
of that character. A negative count searches for subsequent
|
||||
occurrences.
|
||||
|
||||
`insert-comment (M-#)'
|
||||
The value of the `comment-begin' variable is inserted at the
|
||||
beginning of the current line, and the line is accepted as if a
|
||||
newline had been typed.
|
||||
|
||||
`dump-functions ()'
|
||||
Print all of the functions and their key bindings to the Readline
|
||||
output stream. If a numeric argument is supplied, the output is
|
||||
formatted in such a way that it can be made part of an INPUTRC
|
||||
file. This command is unbound by default.
|
||||
|
||||
`dump-variables ()'
|
||||
Print all of the settable variables and their values to the
|
||||
Readline output stream. If a numeric argument is supplied, the
|
||||
output is formatted in such a way that it can be made part of an
|
||||
INPUTRC file. This command is unbound by default.
|
||||
|
||||
`dump-macros ()'
|
||||
Print all of the Readline key sequences bound to macros and the
|
||||
strings they ouput. If a numeric argument is supplied, the output
|
||||
is formatted in such a way that it can be made part of an INPUTRC
|
||||
file. This command is unbound by default.
|
||||
|
||||
|
||||
File: gdb.info, Node: Readline vi Mode, Prev: Bindable Readline Commands, Up: Command Line Editing
|
||||
|
||||
Readline vi Mode
|
||||
================
|
||||
|
||||
While the Readline library does not have a full set of `vi' editing
|
||||
functions, it does contain enough to allow simple editing of the line.
|
||||
The Readline `vi' mode behaves as specified in the POSIX 1003.2
|
||||
standard.
|
||||
|
||||
In order to switch interactively between `emacs' and `vi' editing
|
||||
modes, use the command M-C-j (toggle-editing-mode). The Readline
|
||||
default is `emacs' mode.
|
||||
|
||||
When you enter a line in `vi' mode, you are already placed in
|
||||
`insertion' mode, as if you had typed an `i'. Pressing <ESC> switches
|
||||
you into `command' mode, where you can edit the text of the line with
|
||||
the standard `vi' movement keys, move to previous history lines with
|
||||
`k' and subsequent lines with `j', and so forth.
|
||||
|
||||
|
||||
File: gdb.info, Node: Using History Interactively, Next: Installing GDB, Prev: Command Line Editing, Up: Top
|
||||
|
||||
Using History Interactively
|
||||
***************************
|
||||
|
||||
This chapter describes how to use the GNU History Library
|
||||
interactively, from a user's standpoint.
|
||||
|
||||
* Menu:
|
||||
|
||||
* History Interaction:: What it feels like using History as a user.
|
||||
|
||||
|
||||
File: gdb.info, Node: History Interaction, Up: Using History Interactively
|
||||
|
||||
History Interaction
|
||||
===================
|
||||
|
||||
The History library provides a history expansion feature similar to
|
||||
the history expansion in `csh'. The following text describes the
|
||||
syntax you use to manipulate history information.
|
||||
|
||||
History expansion takes two parts. In the first part, determine
|
||||
which line from the previous history will be used for substitution.
|
||||
This line is called the "event". In the second part, select portions
|
||||
of that line for inclusion into the current line. These portions are
|
||||
called "words". GDB breaks the line into words in the same way that
|
||||
the Bash shell does, so that several English (or Unix) words surrounded
|
||||
by quotes are considered one word.
|
||||
|
||||
* Menu:
|
||||
|
||||
* Event Designators:: How to specify which history line to use.
|
||||
* Word Designators:: Specifying which words are of interest.
|
||||
* Modifiers:: Modifying the results of susbstitution.
|
||||
|
||||
|
||||
File: gdb.info, Node: Event Designators, Next: Word Designators, Up: History Interaction
|
||||
|
||||
Event Designators
|
||||
-----------------
|
||||
|
||||
An "event designator" is a reference to a command line entry in the
|
||||
history list.
|
||||
|
||||
`!'
|
||||
Start a history subsititution, except when followed by a space,
|
||||
tab, or the end of the line... <=> or <(>.
|
||||
|
||||
`!!'
|
||||
Refer to the previous command. This is a synonym for `!-1'.
|
||||
|
||||
`!n'
|
||||
Refer to command line N.
|
||||
|
||||
`!-n'
|
||||
Refer to the command line N lines back.
|
||||
|
||||
`!string'
|
||||
Refer to the most recent command starting with STRING.
|
||||
|
||||
`!?string'[`?']
|
||||
Refer to the most recent command containing STRING.
|
||||
|
||||
|
||||
File: gdb.info, Node: Word Designators, Next: Modifiers, Prev: Event Designators, Up: History Interaction
|
||||
|
||||
Word Designators
|
||||
----------------
|
||||
|
||||
A <:> separates the event designator from the "word designator". It
|
||||
can be omitted if the word designator begins with a <^>, <$>, <*> or
|
||||
<%>. Words are numbered from the beginning of the line, with the first
|
||||
word being denoted by a 0 (zero).
|
||||
|
||||
`0 (zero)'
|
||||
The zero'th word. For many applications, this is the command word.
|
||||
|
||||
`n'
|
||||
The N'th word.
|
||||
|
||||
`^'
|
||||
The first argument. that is, word 1.
|
||||
|
||||
`$'
|
||||
The last argument.
|
||||
|
||||
`%'
|
||||
The word matched by the most recent `?string?' search.
|
||||
|
||||
`x-y'
|
||||
A range of words; `-Y' Abbreviates `0-Y'.
|
||||
|
||||
`*'
|
||||
All of the words, excepting the zero'th. This is a synonym for
|
||||
`1-$'. It is not an error to use <*> if there is just one word in
|
||||
the event. The empty string is returned in that case.
|
||||
|
||||
|
||||
File: gdb.info, Node: Modifiers, Prev: Word Designators, Up: History Interaction
|
||||
|
||||
Modifiers
|
||||
---------
|
||||
|
||||
After the optional word designator, you can add a sequence of one or
|
||||
more of the following "modifiers", each preceded by a <:>.
|
||||
|
||||
`#'
|
||||
The entire command line typed so far. This means the current
|
||||
command, not the previous command.
|
||||
|
||||
`h'
|
||||
Remove a trailing pathname component, leaving only the head.
|
||||
|
||||
`r'
|
||||
Remove a trailing suffix of the form `.'SUFFIX, leaving the
|
||||
basename.
|
||||
|
||||
`e'
|
||||
Remove all but the suffix.
|
||||
|
||||
`t'
|
||||
Remove all leading pathname components, leaving the tail.
|
||||
|
||||
`p'
|
||||
Print the new command but do not execute it.
|
||||
|
||||
|
||||
File: gdb.info, Node: Formatting Documentation, Next: Command Line Editing, Prev: GDB Bugs, Up: Top
|
||||
|
||||
Formatting Documentation
|
||||
************************
|
||||
|
||||
The GDB 4 release includes an already-formatted reference card, ready
|
||||
for printing with PostScript or Ghostscript, in the `gdb' subdirectory
|
||||
of the main source directory(1). If you can use PostScript or
|
||||
Ghostscript with your printer, you can print the reference card
|
||||
immediately with `refcard.ps'.
|
||||
|
||||
The release also includes the source for the reference card. You
|
||||
can format it, using TeX, by typing:
|
||||
|
||||
make refcard.dvi
|
||||
|
||||
The GDB reference card is designed to print in "landscape" mode on
|
||||
US "letter" size paper; that is, on a sheet 11 inches wide by 8.5 inches
|
||||
high. You will need to specify this form of printing as an option to
|
||||
your DVI output program.
|
||||
|
||||
All the documentation for GDB comes as part of the machine-readable
|
||||
distribution. The documentation is written in Texinfo format, which is
|
||||
a documentation system that uses a single source file to produce both
|
||||
on-line information and a printed manual. You can use one of the Info
|
||||
formatting commands to create the on-line version of the documentation
|
||||
and TeX (or `texi2roff') to typeset the printed version.
|
||||
|
||||
GDB includes an already formatted copy of the on-line Info version
|
||||
of this manual in the `gdb' subdirectory. The main Info file is
|
||||
`gdb-4.18/gdb/gdb.info', and it refers to subordinate files matching
|
||||
`gdb.info*' in the same directory. If necessary, you can print out
|
||||
these files, or read them with any editor; but they are easier to read
|
||||
using the `info' subsystem in GNU Emacs or the standalone `info'
|
||||
program, available as part of the GNU Texinfo distribution.
|
||||
|
||||
If you want to format these Info files yourself, you need one of the
|
||||
Info formatting programs, such as `texinfo-format-buffer' or `makeinfo'.
|
||||
|
||||
If you have `makeinfo' installed, and are in the top level GDB
|
||||
source directory (`gdb-4.18', in the case of version 4.18), you can
|
||||
make the Info file by typing:
|
||||
|
||||
cd gdb
|
||||
make gdb.info
|
||||
|
||||
If you want to typeset and print copies of this manual, you need TeX,
|
||||
a program to print its DVI output files, and `texinfo.tex', the Texinfo
|
||||
definitions file.
|
||||
|
||||
TeX is a typesetting program; it does not print files directly, but
|
||||
produces output files called DVI files. To print a typeset document,
|
||||
you need a program to print DVI files. If your system has TeX
|
||||
installed, chances are it has such a program. The precise command to
|
||||
use depends on your system; `lpr -d' is common; another (for PostScript
|
||||
devices) is `dvips'. The DVI print command may require a file name
|
||||
without any extension or a `.dvi' extension.
|
||||
|
||||
TeX also requires a macro definitions file called `texinfo.tex'.
|
||||
This file tells TeX how to typeset a document written in Texinfo
|
||||
format. On its own, TeX cannot either read or typeset a Texinfo file.
|
||||
`texinfo.tex' is distributed with GDB and is located in the
|
||||
`gdb-VERSION-NUMBER/texinfo' directory.
|
||||
|
||||
If you have TeX and a DVI printer program installed, you can typeset
|
||||
and print this manual. First switch to the the `gdb' subdirectory of
|
||||
the main source directory (for example, to `gdb-4.18/gdb') and type:
|
||||
|
||||
make gdb.dvi
|
||||
|
||||
Then give `gdb.dvi' to your DVI printing program.
|
||||
|
||||
---------- Footnotes ----------
|
||||
|
||||
(1) In `gdb-4.18/gdb/refcard.ps' of the version 4.18 release.
|
||||
|
||||
|
||||
File: gdb.info, Node: Installing GDB, Next: Index, Prev: Using History Interactively, Up: Top
|
||||
|
||||
Installing GDB
|
||||
**************
|
||||
|
||||
GDB comes with a `configure' script that automates the process of
|
||||
preparing GDB for installation; you can then use `make' to build the
|
||||
`gdb' program.
|
||||
|
||||
The GDB distribution includes all the source code you need for GDB
|
||||
in a single directory, whose name is usually composed by appending the
|
||||
version number to `gdb'.
|
||||
|
||||
For example, the GDB version 4.18 distribution is in the `gdb-4.18'
|
||||
directory. That directory contains:
|
||||
|
||||
`gdb-4.18/configure (and supporting files)'
|
||||
script for configuring GDB and all its supporting libraries
|
||||
|
||||
`gdb-4.18/gdb'
|
||||
the source specific to GDB itself
|
||||
|
||||
`gdb-4.18/bfd'
|
||||
source for the Binary File Descriptor library
|
||||
|
||||
`gdb-4.18/include'
|
||||
GNU include files
|
||||
|
||||
`gdb-4.18/libiberty'
|
||||
source for the `-liberty' free software library
|
||||
|
||||
`gdb-4.18/opcodes'
|
||||
source for the library of opcode tables and disassemblers
|
||||
|
||||
`gdb-4.18/readline'
|
||||
source for the GNU command-line interface
|
||||
|
||||
`gdb-4.18/glob'
|
||||
source for the GNU filename pattern-matching subroutine
|
||||
|
||||
`gdb-4.18/mmalloc'
|
||||
source for the GNU memory-mapped malloc package
|
||||
|
||||
The simplest way to configure and build GDB is to run `configure'
|
||||
from the `gdb-VERSION-NUMBER' source directory, which in this example
|
||||
is the `gdb-4.18' directory.
|
||||
|
||||
First switch to the `gdb-VERSION-NUMBER' source directory if you are
|
||||
not already in it; then run `configure'. Pass the identifier for the
|
||||
platform on which GDB will run as an argument.
|
||||
|
||||
For example:
|
||||
|
||||
cd gdb-4.18
|
||||
./configure HOST
|
||||
make
|
||||
|
||||
where HOST is an identifier such as `sun4' or `decstation', that
|
||||
identifies the platform where GDB will run. (You can often leave off
|
||||
HOST; `configure' tries to guess the correct value by examining your
|
||||
system.)
|
||||
|
||||
Running `configure HOST' and then running `make' builds the `bfd',
|
||||
`readline', `mmalloc', and `libiberty' libraries, then `gdb' itself.
|
||||
The configured source files, and the binaries, are left in the
|
||||
corresponding source directories.
|
||||
|
||||
`configure' is a Bourne-shell (`/bin/sh') script; if your system
|
||||
does not recognize this automatically when you run a different shell,
|
||||
you may need to run `sh' on it explicitly:
|
||||
|
||||
sh configure HOST
|
||||
|
||||
If you run `configure' from a directory that contains source
|
||||
directories for multiple libraries or programs, such as the `gdb-4.18'
|
||||
source directory for version 4.18, `configure' creates configuration
|
||||
files for every directory level underneath (unless you tell it not to,
|
||||
with the `--norecursion' option).
|
||||
|
||||
You can run the `configure' script from any of the subordinate
|
||||
directories in the GDB distribution if you only want to configure that
|
||||
subdirectory, but be sure to specify a path to it.
|
||||
|
||||
For example, with version 4.18, type the following to configure only
|
||||
the `bfd' subdirectory:
|
||||
|
||||
cd gdb-4.18/bfd
|
||||
../configure HOST
|
||||
|
||||
You can install `gdb' anywhere; it has no hardwired paths. However,
|
||||
you should make sure that the shell on your path (named by the `SHELL'
|
||||
environment variable) is publicly readable. Remember that GDB uses the
|
||||
shell to start your program--some systems refuse to let GDB debug child
|
||||
processes whose programs are not readable.
|
||||
|
||||
* Menu:
|
||||
|
||||
* Separate Objdir:: Compiling GDB in another directory
|
||||
* Config Names:: Specifying names for hosts and targets
|
||||
* Configure Options:: Summary of options for configure
|
||||
|
||||
|
||||
File: gdb.info, Node: Separate Objdir, Next: Config Names, Prev: Installing GDB, Up: Installing GDB
|
||||
|
||||
Compiling GDB in another directory
|
||||
==================================
|
||||
|
||||
If you want to run GDB versions for several host or target machines,
|
||||
you need a different `gdb' compiled for each combination of host and
|
||||
target. `configure' is designed to make this easy by allowing you to
|
||||
generate each configuration in a separate subdirectory, rather than in
|
||||
the source directory. If your `make' program handles the `VPATH'
|
||||
feature (GNU `make' does), running `make' in each of these directories
|
||||
builds the `gdb' program specified there.
|
||||
|
||||
To build `gdb' in a separate directory, run `configure' with the
|
||||
`--srcdir' option to specify where to find the source. (You also need
|
||||
to specify a path to find `configure' itself from your working
|
||||
directory. If the path to `configure' would be the same as the
|
||||
argument to `--srcdir', you can leave out the `--srcdir' option; it is
|
||||
assumed.)
|
||||
|
||||
For example, with version 4.18, you can build GDB in a separate
|
||||
directory for a Sun 4 like this:
|
||||
|
||||
cd gdb-4.18
|
||||
mkdir ../gdb-sun4
|
||||
cd ../gdb-sun4
|
||||
../gdb-4.18/configure sun4
|
||||
make
|
||||
|
||||
When `configure' builds a configuration using a remote source
|
||||
directory, it creates a tree for the binaries with the same structure
|
||||
(and using the same names) as the tree under the source directory. In
|
||||
the example, you'd find the Sun 4 library `libiberty.a' in the
|
||||
directory `gdb-sun4/libiberty', and GDB itself in `gdb-sun4/gdb'.
|
||||
|
||||
One popular reason to build several GDB configurations in separate
|
||||
directories is to configure GDB for cross-compiling (where GDB runs on
|
||||
one machine--the "host"--while debugging programs that run on another
|
||||
machine--the "target"). You specify a cross-debugging target by giving
|
||||
the `--target=TARGET' option to `configure'.
|
||||
|
||||
When you run `make' to build a program or library, you must run it
|
||||
in a configured directory--whatever directory you were in when you
|
||||
called `configure' (or one of its subdirectories).
|
||||
|
||||
The `Makefile' that `configure' generates in each source directory
|
||||
also runs recursively. If you type `make' in a source directory such
|
||||
as `gdb-4.18' (or in a separate configured directory configured with
|
||||
`--srcdir=DIRNAME/gdb-4.18'), you will build all the required
|
||||
libraries, and then build GDB.
|
||||
|
||||
When you have multiple hosts or targets configured in separate
|
||||
directories, you can run `make' on them in parallel (for example, if
|
||||
they are NFS-mounted on each of the hosts); they will not interfere
|
||||
with each other.
|
||||
|
||||
|
||||
File: gdb.info, Node: Config Names, Next: Configure Options, Prev: Separate Objdir, Up: Installing GDB
|
||||
|
||||
Specifying names for hosts and targets
|
||||
======================================
|
||||
|
||||
The specifications used for hosts and targets in the `configure'
|
||||
script are based on a three-part naming scheme, but some short
|
||||
predefined aliases are also supported. The full naming scheme encodes
|
||||
three pieces of information in the following pattern:
|
||||
|
||||
ARCHITECTURE-VENDOR-OS
|
||||
|
||||
For example, you can use the alias `sun4' as a HOST argument, or as
|
||||
the value for TARGET in a `--target=TARGET' option. The equivalent
|
||||
full name is `sparc-sun-sunos4'.
|
||||
|
||||
The `configure' script accompanying GDB does not provide any query
|
||||
facility to list all supported host and target names or aliases.
|
||||
`configure' calls the Bourne shell script `config.sub' to map
|
||||
abbreviations to full names; you can read the script, if you wish, or
|
||||
you can use it to test your guesses on abbreviations--for example:
|
||||
|
||||
% sh config.sub i386-linux
|
||||
i386-pc-linux-gnu
|
||||
% sh config.sub alpha-linux
|
||||
alpha-unknown-linux-gnu
|
||||
% sh config.sub hp9k700
|
||||
hppa1.1-hp-hpux
|
||||
% sh config.sub sun4
|
||||
sparc-sun-sunos4.1.1
|
||||
% sh config.sub sun3
|
||||
m68k-sun-sunos4.1.1
|
||||
% sh config.sub i986v
|
||||
Invalid configuration `i986v': machine `i986v' not recognized
|
||||
|
||||
`config.sub' is also distributed in the GDB source directory
|
||||
(`gdb-4.18', for version 4.18).
|
||||
|
||||
|
||||
File: gdb.info, Node: Configure Options, Prev: Config Names, Up: Installing GDB
|
||||
|
||||
`configure' options
|
||||
===================
|
||||
|
||||
Here is a summary of the `configure' options and arguments that are
|
||||
most often useful for building GDB. `configure' also has several other
|
||||
options not listed here. *note (configure.info)What Configure Does::,
|
||||
for a full explanation of `configure'.
|
||||
|
||||
configure [--help]
|
||||
[--prefix=DIR]
|
||||
[--exec-prefix=DIR]
|
||||
[--srcdir=DIRNAME]
|
||||
[--norecursion] [--rm]
|
||||
[--target=TARGET]
|
||||
HOST
|
||||
|
||||
You may introduce options with a single `-' rather than `--' if you
|
||||
prefer; but you may abbreviate option names if you use `--'.
|
||||
|
||||
`--help'
|
||||
Display a quick summary of how to invoke `configure'.
|
||||
|
||||
`--prefix=DIR'
|
||||
Configure the source to install programs and files under directory
|
||||
`DIR'.
|
||||
|
||||
`--exec-prefix=DIR'
|
||||
Configure the source to install programs under directory `DIR'.
|
||||
|
||||
`--srcdir=DIRNAME'
|
||||
*Warning: using this option requires GNU `make', or another `make'
|
||||
that implements the `VPATH' feature.*
|
||||
Use this option to make configurations in directories separate
|
||||
from the GDB source directories. Among other things, you can use
|
||||
this to build (or maintain) several configurations simultaneously,
|
||||
in separate directories. `configure' writes configuration
|
||||
specific files in the current directory, but arranges for them to
|
||||
use the source in the directory DIRNAME. `configure' creates
|
||||
directories under the working directory in parallel to the source
|
||||
directories below DIRNAME.
|
||||
|
||||
`--norecursion'
|
||||
Configure only the directory level where `configure' is executed;
|
||||
do not propagate configuration to subdirectories.
|
||||
|
||||
`--target=TARGET'
|
||||
Configure GDB for cross-debugging programs running on the specified
|
||||
TARGET. Without this option, GDB is configured to debug programs
|
||||
that run on the same machine (HOST) as GDB itself.
|
||||
|
||||
There is no convenient way to generate a list of all available
|
||||
targets.
|
||||
|
||||
`HOST ...'
|
||||
Configure GDB to run on the specified HOST.
|
||||
|
||||
There is no convenient way to generate a list of all available
|
||||
hosts.
|
||||
|
||||
There are many other options available as well, but they are
|
||||
generally needed for special purposes only.
|
||||
|
||||
49258
gdb/doc/gdb.ps
Normal file
49258
gdb/doc/gdb.ps
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
BIN
gdb/doc/gdbint.dvi
Normal file
BIN
gdb/doc/gdbint.dvi
Normal file
Binary file not shown.
48
gdb/doc/gdbint.info
Normal file
48
gdb/doc/gdbint.info
Normal file
@@ -0,0 +1,48 @@
|
||||
This is Info file gdbint.info, produced by Makeinfo version 1.68 from
|
||||
the input file ./gdbint.texinfo.
|
||||
|
||||
START-INFO-DIR-ENTRY
|
||||
* Gdb-Internals: (gdbint). The GNU debugger's internals.
|
||||
END-INFO-DIR-ENTRY
|
||||
|
||||
This file documents the internals of the GNU debugger GDB.
|
||||
|
||||
Copyright 1990-1999 Free Software Foundation, Inc. Contributed by
|
||||
Cygnus Solutions. Written by John Gilmore. Second Edition by Stan
|
||||
Shebs.
|
||||
|
||||
Permission is granted to make and distribute verbatim copies of this
|
||||
manual provided the copyright notice and this permission notice are
|
||||
preserved on all copies.
|
||||
|
||||
Permission is granted to copy or distribute modified versions of this
|
||||
manual under the terms of the GPL (for which purpose this text may be
|
||||
regarded as a program in the language TeX).
|
||||
|
||||
|
||||
Indirect:
|
||||
gdbint.info-1: 765
|
||||
gdbint.info-2: 41815
|
||||
gdbint.info-3: 91701
|
||||
|
||||
Tag Table:
|
||||
(Indirect)
|
||||
Node: Top765
|
||||
Node: Requirements1371
|
||||
Node: Overall Structure2858
|
||||
Node: Algorithms6131
|
||||
Node: User Interface11141
|
||||
Node: Symbol Handling12259
|
||||
Node: Language Support26156
|
||||
Node: Host Definition31366
|
||||
Node: Target Architecture Definition41815
|
||||
Node: Target Vector Definition64431
|
||||
Node: Native Debugging66989
|
||||
Node: Support Libraries77194
|
||||
Node: Coding78904
|
||||
Node: Porting GDB91701
|
||||
Node: Hints94412
|
||||
Node: Getting Started94711
|
||||
Node: Debugging GDB98842
|
||||
|
||||
End Tag Table
|
||||
1075
gdb/doc/gdbint.info-1
Normal file
1075
gdb/doc/gdbint.info-1
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user