aboutsummaryrefslogtreecommitdiff
path: root/gdb/doc/gdbint.texinfo
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-04-15 00:33:51 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-04-15 00:33:51 +0000
commit3a8bc841b021e54edcf9c675fb67395d1daa2c64 (patch)
tree647f8348da7d42fe1d382b05dbf649c1a8e500b7 /gdb/doc/gdbint.texinfo
parent486b440e04ee758005b61095c3691a3e9be6c2a6 (diff)
downloadgdb-3a8bc841b021e54edcf9c675fb67395d1daa2c64.zip
gdb-3a8bc841b021e54edcf9c675fb67395d1daa2c64.tar.gz
gdb-3a8bc841b021e54edcf9c675fb67395d1daa2c64.tar.bz2
minor xcoff changes
Diffstat (limited to 'gdb/doc/gdbint.texinfo')
-rw-r--r--gdb/doc/gdbint.texinfo116
1 files changed, 68 insertions, 48 deletions
diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo
index 3578ef1..708b5d2 100644
--- a/gdb/doc/gdbint.texinfo
+++ b/gdb/doc/gdbint.texinfo
@@ -76,6 +76,7 @@ GDB as you discover it (or as you design changes to GDB).
* Languages:: Defining New Source Languages
* Releases:: Configuring GDB for Release
* Partial Symbol Tables:: How GDB reads symbols quickly at startup
+* Types:: How GDB keeps track of types
* BFD support for GDB:: How BFD and GDB interface
* Symbol Reading:: Defining New Symbol Readers
* Cleanups:: Cleanups
@@ -147,9 +148,9 @@ conventions.
Host-Dependent Files
@table @file
-@item config/*.mh
+@item config/*/*.mh
Sets Makefile parameters
-@item xm-*.h
+@item config/*/xm-*.h
Global #include's and #define's and definitions
@item *-xdep.c
Global variables and functions
@@ -157,9 +158,9 @@ Global variables and functions
Native-Dependent Files
@table @file
-@item config/*.mh
+@item config/*/*.mh
Sets Makefile parameters (for @emph{both} host and native)
-@item nm-*.h
+@item config/*/nm-*.h
#include's and #define's and definitions. This file
is only included by the small number of modules that need it,
so beware of doing feature-test #define's from its macros.
@@ -169,9 +170,9 @@ global variables and functions
Target-Dependent Files
@table @file
-@item config/*.mt
+@item config/*/*.mt
Sets Makefile parameters
-@item tm-*.h
+@item config/*/tm-*.h
Global #include's and #define's and definitions
@item *-tdep.c
Global variables and functions
@@ -180,7 +181,7 @@ Global variables and functions
At this writing, most supported hosts have had their host and native
dependencies sorted out properly. There are a few stragglers, which
can be recognized by the absence of NATDEPFILES lines in their
-@file{config/*.mh}.
+@file{config/*/*.mh}.
@node Config
@chapter Adding a New Configuration
@@ -277,7 +278,7 @@ and @pxref{Native,,Adding a New Native Configuration}
Several files control GDB's configuration for host systems:
@table @file
-@item gdb/config/mh-@var{xxx}
+@item gdb/config/@var{arch}/@var{xxx}.mh
Specifies Makefile fragments needed when hosting on machine @var{xxx}.
In particular, this lists the required machine-dependent object files,
by defining @samp{XDEPFILES=@dots{}}. Also
@@ -287,7 +288,7 @@ specifies the header file which describes host @var{xxx}, by defining
@samp{XM_ADD_FILES}, @samp{XM_CLIBS}, @samp{XM_CDEPS},
etc.; see @file{Makefile.in}.
-@item gdb/xm-@var{xxx}.h
+@item gdb/config/@var{arch}/xm-@var{xxx}.h
(@file{xm.h} is a link to this file, created by configure).
Contains C macro definitions describing the host system environment,
such as byte order, host C compiler and library, ptrace support,
@@ -360,7 +361,7 @@ plenty more work to do. Several files control GDB's configuration for
native support:
@table @file
-@item gdb/config/@var{xxx}.mh
+@item gdb/config/@var{xarch}/@var{xxx}.mh
Specifies Makefile fragments needed when hosting @emph{or native}
on machine @var{xxx}.
In particular, this lists the required native-dependent object files,
@@ -371,7 +372,7 @@ You can also define @samp{NAT_CFLAGS},
@samp{NAT_ADD_FILES}, @samp{NAT_CLIBS}, @samp{NAT_CDEPS},
etc.; see @file{Makefile.in}.
-@item gdb/nm-@var{xxx}.h
+@item gdb/config/@var{arch}/nm-@var{xxx}.h
(@file{nm.h} is a link to this file, created by configure).
Contains C macro definitions describing the native system environment,
such as child process control and core file support.
@@ -479,7 +480,7 @@ target is the same as your new host, you've probably already done that.
A variety of files specify attributes of the GDB target environment:
@table @file
-@item gdb/config/@var{ttt}.mt
+@item gdb/config/@var{arch}/@var{ttt}.mt
Contains a Makefile fragment specific to this target.
Specifies what object files are needed for target @var{ttt}, by
defining @samp{TDEPFILES=@dots{}}.
@@ -488,7 +489,7 @@ Also specifies the header file which describes @var{ttt}, by defining
@samp{TM_CLIBS}, @samp{TM_CDEPS},
and other Makefile variables here; see @file{Makefile.in}.
-@item gdb/tm-@var{ttt}.h
+@item gdb/config/@var{arch}/tm-@var{ttt}.h
(@file{tm.h} is a link to this file, created by configure).
Contains macro definitions about the target machine's
registers, stack frame format and instructions.
@@ -523,7 +524,7 @@ it is only included in one place. @file{@var{arch}-opcode.h} is shared
between the debugger and the assembler, if the GNU assembler has been
ported to the target machine.
-@item gdb/tm-@var{arch}.h
+@item gdb/config/@var{arch}/tm-@var{arch}.h
This often exists to describe the basic layout of the target machine's
processor chip (registers, stack, etc).
If used, it is included by @file{tm-@var{xxx}.h}. It can
@@ -806,6 +807,37 @@ are allocated in a pair of large arrays on an obstack, so there is
little to be gained by trying to free them unless you want to do a lot
more work.
+@node Types
+@chapter Types
+
+Fundamental Types (e.g., FT_VOID, FT_BOOLEAN).
+
+These are the fundamental types that gdb uses internally. Fundamental
+types from the various debugging formats (stabs, ELF, etc) are mapped into
+one of these. They are basically a union of all fundamental types that
+gdb knows about for all the languages that gdb knows about.
+
+Type Codes (e.g., TYPE_CODE_PTR, TYPE_CODE_ARRAY).
+
+Each time gdb builds an internal type, it marks it with one of these
+types. The type may be a fundamental type, such as TYPE_CODE_INT, or
+a derived type, such as TYPE_CODE_PTR which is a pointer to another
+type. Typically, several FT_* types map to one TYPE_CODE_* type, and
+are distinguished by other members of the type struct, such as whether
+the type is signed or unsigned, and how many bits it uses.
+
+Builtin Types (e.g., builtin_type_void, builtin_type_char).
+
+These are instances of type structs that roughly correspond to fundamental
+types and are created as global types for gdb to use for various ugly
+historical reasons. We eventually want to eliminate these. Note for
+example that builtin_type_int initialized in gdbtypes.c is basically the
+same as a TYPE_CODE_INT type that is initialized in c-lang.c for an
+FT_INTEGER fundamental type. The difference is that the builtin_type is
+not associated with any particular objfile, and only one instance exists,
+while c-lang.c builds as many TYPE_CODE_INT types as needed, with each
+one associated with some particular objfile.
+
@node BFD support for GDB
@chapter Binary File Descriptor Library Support for GDB
@@ -1361,9 +1393,9 @@ solib.c
@item BLOCK_ADDRESS_ABSOLUTE
dbxread.c
@item BPT_VECTOR
-tm-68k.h
+tm-m68k.h
@item BREAKPOINT
-tm-68k.h
+tm-m68k.h
@item BREAKPOINT_DEBUG
breakpoint.c
@item BROKEN_LARGE_ALLOCA
@@ -1406,8 +1438,6 @@ infrun.c
regex.c
@item C_GLBLREG
coffread.c
-@item DAMON
-xcoffexec.c
@item DBXREAD_ONLY
partial-stab.h
@item DBX_PARM_SYMBOL_CLASS
@@ -1441,7 +1471,7 @@ dbxread.c
@item EXTERN
buildsym.h
@item EXTRACT_RETURN_VALUE
-tm-68k.h
+tm-m68k.h
@item EXTRACT_STRUCT_VALUE_ADDRESS
values.c
@item EXTRA_FRAME_INFO
@@ -1477,7 +1507,7 @@ stack.c
@item FRAME_GET_BASEREG_VALUE
frame.h
@item FRAME_NUM_ARGS
-tm-68k.h
+tm-m68k.h
@item FRAME_SPECIFICATION_DYADIC
stack.c
@item FUNCTION_EPILOGUE_SIZE
@@ -1637,8 +1667,6 @@ remote-adapt.c
remote-mm.c
@item NOTICE_SIGNAL_HANDLING_CHANGE
infrun.c
-@item NO_DEFINE_SYMBOL
-xcoffread.c
@item NO_HIF_SUPPORT
remote-mm.c
@item NO_JOB_CONTROL
@@ -1652,7 +1680,7 @@ library can't cope with our redefinition of @code{malloc} to call
@code{mmalloc}. When defining @code{NO_MMALLOC}, you will also have
to override the setting of @code{MMALLOC_LIB} to empty, in the Makefile.
Therefore, this define is usually set on the command line by overriding
-@code{MMALLOC_DISABLE} in @file{config/*.mh}, rather than by defining
+@code{MMALLOC_DISABLE} in @file{config/*/*.mh}, rather than by defining
it in @file{xm-*.h}.
@item NO_MMALLOC_CHECK
Define this if you are using @code{mmalloc}, but don't want the overhead
@@ -1661,10 +1689,6 @@ of checking the heap with @code{mmcheck}.
remote-adapt.c
@item NO_SINGLE_STEP
infptrace.c
-@item NO_TYPEDEFS
-xcoffread.c
-@item NO_TYPEDEFS
-xcoffread.c
@item NPC_REGNUM
infcmd.c
@item NS32K_SVC_IMMED_OPERANDS
@@ -1755,7 +1779,7 @@ regex.c
@item SIGTRAP_STOP_AFTER_LOAD
infrun.c
@item SKIP_PROLOGUE
-tm-68k.h
+tm-m68k.h
@item SKIP_PROLOGUE_FRAMELESS_P
blockframe.c
@item SKIP_TRAMPOLINE_CODE
@@ -1777,7 +1801,7 @@ infrun.c
@item STOP_SIGNAL
main.c
@item STORE_RETURN_VALUE
-tm-68k.h
+tm-m68k.h
@item SUN4_COMPILER_FEATURE
infrun.c
@item SUN_FIXED_LBRAC_BUG
@@ -1964,9 +1988,9 @@ solib.c
@item BLOCK_ADDRESS_ABSOLUTE
dbxread.c
@item BPT_VECTOR
-tm-68k.h
+tm-m68k.h
@item BREAKPOINT
-tm-68k.h
+tm-m68k.h
@item BREAKPOINT_DEBUG
breakpoint.c
@item BSTRING
@@ -2003,8 +2027,6 @@ infrun.c
regex.c
@item C_GLBLREG
coffread.c
-@item DAMON
-xcoffexec.c
@item DBXREAD_ONLY
partial-stab.h
@item DBX_PARM_SYMBOL_CLASS
@@ -2038,7 +2060,7 @@ dbxread.c
@item EXTERN
buildsym.h
@item EXTRACT_RETURN_VALUE
-tm-68k.h
+tm-m68k.h
@item EXTRACT_STRUCT_VALUE_ADDRESS
values.c
@item EXTRA_FRAME_INFO
@@ -2076,7 +2098,7 @@ stack.c
@item FRAME_GET_BASEREG_VALUE
frame.h
@item FRAME_NUM_ARGS
-tm-68k.h
+tm-m68k.h
@item FRAME_SPECIFICATION_DYADIC
stack.c
@item FUNCTION_EPILOGUE_SIZE
@@ -2228,8 +2250,6 @@ remote-adapt.c
remote-mm.c
@item NOTICE_SIGNAL_HANDLING_CHANGE
infrun.c
-@item NO_DEFINE_SYMBOL
-xcoffread.c
@item NO_HIF_SUPPORT
remote-mm.c
@item NO_SIGINTERRUPT
@@ -2237,9 +2257,8 @@ remote-adapt.c
@item NO_SINGLE_STEP
infptrace.c
@item NO_TYPEDEFS
-xcoffread.c
-@item NO_TYPEDEFS
-xcoffread.c
+xcoffread.c--This causes types not to be read, to save memory and speed
+things up.
@item NPC_REGNUM
infcmd.c
@item NS32K_SVC_IMMED_OPERANDS
@@ -2313,7 +2332,7 @@ regex.c
@item SIGTRAP_STOP_AFTER_LOAD
infrun.c
@item SKIP_PROLOGUE
-tm-68k.h
+tm-m68k.h
@item SKIP_PROLOGUE_FRAMELESS_P
blockframe.c
@item SKIP_TRAMPOLINE_CODE
@@ -2335,7 +2354,7 @@ infrun.c
@item STOP_SIGNAL
main.c
@item STORE_RETURN_VALUE
-tm-68k.h
+tm-m68k.h
@item SUN4_COMPILER_FEATURE
infrun.c
@item SUN_FIXED_LBRAC_BUG
@@ -2535,12 +2554,13 @@ symbols are dbx-style stabs whose strings are located in the
indicated with a @samp{C_FILE} symbol (.file) which is analogous to
@samp{N_SO}; include files are delimited with @samp{C_BINCL} (.bi) and
@samp{C_EINCL} (.ei) which correspond to @samp{N_SOL} rather than Sun's
-@samp{N_BINCL}. The values of the @samp{C_BINCL} and @samp{C_EINCL}
-symbols are offsets into the executable file which point to the
-beginning and the end of the portion of the linetable which correspond
-to this include file (warning: C_EINCL is @emph{inclusive} not exclusive
-like most end of something pointers). Other differences from standard
-stabs include the use of negative type numbers for builtin types.
+@samp{N_BINCL} (that is, they don't nest and there is no equivalent to
+N_EXCL). The values of the @samp{C_BINCL} and @samp{C_EINCL} symbols
+are offsets into the executable file which point to the beginning and
+the end of the portion of the linetable which correspond to this include
+file (warning: C_EINCL is inclusive not exclusive like most end of
+something pointers). Other differences from standard stabs include the
+use of negative type numbers for builtin types.
The shared library scheme has a nice clean interface for figuring out
what shared libraries are in use, but the catch is that everything which