]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/doc/gdbint.texinfo
Thu Oct 8 15:07:22 1992 Ian Lance Taylor (ian@cygnus.com)
[thirdparty/binutils-gdb.git] / gdb / doc / gdbint.texinfo
CommitLineData
ca714d03 1\input texinfo
7f09f15f 2@setfilename gdbint.info
d98259f8 3@c $Id$
b7becc8f
RP
4
5@ifinfo
6@format
7START-INFO-DIR-ENTRY
493cf018 8* Gdb-Internals: (gdbint). The GNU debugger internals.
b7becc8f
RP
9END-INFO-DIR-ENTRY
10@end format
11@end ifinfo
12
ca714d03
RP
13@ifinfo
14This file documents the internals of the GNU debugger GDB.
f222d23d 15
493cf018 16Copyright (C) 1990, 1991, 1992 Free Software Foundation, Inc.
ca714d03 17Contributed by Cygnus Support. Written by John Gilmore.
cfddbd02 18
ca714d03
RP
19Permission is granted to make and distribute verbatim copies of
20this manual provided the copyright notice and this permission notice
21are preserved on all copies.
22
23@ignore
24Permission is granted to process this file through Tex and print the
25results, provided the printed document carries copying permission
26notice identical to this one except for the removal of this paragraph
27(this paragraph not being relevant to the printed manual).
28
29@end ignore
30Permission is granted to copy or distribute modified versions of this
31manual under the terms of the GPL (for which purpose this text may be
32regarded as a program in the language TeX).
33@end ifinfo
34
7f09f15f 35@setchapternewpage off
ca714d03
RP
36@settitle GDB Internals
37@titlepage
38@title{Working in GDB}
39@subtitle{A guide to the internals of the GNU debugger}
40@author John Gilmore
41@author Cygnus Support
42@page
43@tex
44\def\$#1${{#1}} % Kluge: collect RCS revision info without $...$
45\xdef\manvers{\$Revision$} % For use in headers, footers too
46{\parskip=0pt
47\hfill Cygnus Support\par
48\hfill \manvers\par
49\hfill \TeX{}info \texinfoversion\par
50}
51@end tex
52
53@vskip 0pt plus 1filll
493cf018 54Copyright @copyright{} 1990, 1991, 1992 Free Software Foundation, Inc.
ca714d03
RP
55
56Permission is granted to make and distribute verbatim copies of
57this manual provided the copyright notice and this permission notice
58are preserved on all copies.
59
60@end titlepage
61
97f3cb72 62@node Top, README, (dir), (dir)
ca714d03 63
493cf018
JG
64This file documents the internals of the GNU debugger GDB. It is a
65collection of miscellaneous information with little form at this point.
66Mostly, it is a repository into which you can put information about
67GDB as you discover it (or as you design changes to GDB).
68
ca714d03 69@menu
97f3cb72
RP
70* README:: The README File
71* New Architectures:: Defining a New Host or Target Architecture
72* Config:: Adding a New Configuration
7f09f15f
JG
73* Host:: Adding a New Host
74* Target:: Adding a New Target
97f3cb72
RP
75* Languages:: Defining New Source Languages
76* Releases:: Configuring GDB for Release
493cf018 77* Partial Symbol Tables:: How GDB reads symbols quickly at startup
d98259f8 78* BFD support for GDB:: How BFD and GDB interface
97f3cb72
RP
79* Symbol Reading:: Defining New Symbol Readers
80* Cleanups:: Cleanups
81* Wrapping:: Wrapping Output Lines
8cc1c08f 82* Frames:: Keeping track of function calls
493cf018
JG
83* Host Conditionals:: Controlling what features exist in the host
84* Target Conditionals:: Controlling what features exist in the target
7f09f15f 85
ca714d03
RP
86@end menu
87
97f3cb72
RP
88@node README, New Architectures, Top, Top
89@chapter The @file{README} File
cfddbd02 90
97f3cb72
RP
91Check the @file{README} file, it often has useful information that does not
92appear anywhere else in the directory.
cfddbd02 93
cfddbd02 94
97f3cb72
RP
95@node New Architectures, Config, README, Top
96@chapter Defining a New Host or Target Architecture
cfddbd02 97
97f3cb72
RP
98When building support for a new host and/or target, much of the work you
99need to do is handled by specifying configuration files;
100@pxref{Config,,Adding a New Configuration}. Further work can be
101divided into ``host-dependent'' (@pxref{Host,,Adding a New Host}) and
aeb62c7b 102``target-dependent'' (@pxref{Target,,Adding a New Target}). The
97f3cb72
RP
103following discussion is meant to explain the difference between hosts
104and targets.
d98259f8 105
97f3cb72 106@heading What is considered ``host-dependent'' versus ``target-dependent''?
d98259f8 107
b7becc8f
RP
108@dfn{Host} refers to attributes of the system where GDB runs.
109@dfn{Target} refers to the system where the program being debugged
110executes. In most cases they are the same machine; unfortunately, that
111means you must add @emph{both} host and target support for new machines
112in this category.
113
8cc1c08f
JG
114The @file{config/mh-*}, @file{xm-*.h} and @file{*-xdep.c} files are for
115host support. Similarly, the @file{config/mt-*}, @file{tm-*.h} and
97f3cb72
RP
116@file{*-tdep.c} files are for target support. The question is, what
117features or aspects of a debugging or cross-debugging environment are
118considered to be ``host'' support?
cfddbd02 119
97f3cb72
RP
120Defines and include files needed to build on the host are host support.
121Examples are tty support, system defined types, host byte order, host
122float format.
cfddbd02 123
97f3cb72
RP
124Unix child process support is considered an aspect of the host. Since
125when you fork on the host you are still on the host, the various macros
126needed for finding the registers in the upage, running @code{ptrace}, and such
127are all in the host-dependent files.
7f27984e 128
97f3cb72 129@c FIXME so what kinds of things are target support?
7f27984e 130
97f3cb72
RP
131This is still somewhat of a grey area; I (John Gilmore) didn't do the
132@file{xm-*} and @file{tm-*} split for gdb (it was done by Jim Kingdon)
133so I have had to figure out the grounds on which it was split, and make
134my own choices as I evolve it. I have moved many things out of the xdep
135files actually, partly as a result of BFD and partly by removing
136duplicated code.
bbb5013f 137
bbb5013f 138
97f3cb72
RP
139@node Config, Host, New Architectures, Top
140@chapter Adding a New Configuration
bbb5013f 141
97f3cb72
RP
142Most of the work in making GDB compile on a new machine is in specifying
143the configuration of the machine. This is done in a dizzying variety of
144header files and configuration scripts, which we hope to make more
145sensible soon. Let's say your new host is called an @var{xxx} (e.g.
146@samp{sun4}), and its full three-part configuration name is
147@code{@var{xarch}-@var{xvend}-@var{xos}} (e.g. @samp{sparc-sun-sunos4}). In
148particular:
149
b7becc8f 150In the top level directory, edit @file{config.sub} and add @var{xarch},
97f3cb72
RP
151@var{xvend}, and @var{xos} to the lists of supported architectures,
152vendors, and operating systems near the bottom of the file. Also, add
153@var{xxx} as an alias that maps to
154@code{@var{xarch}-@var{xvend}-@var{xos}}. You can test your changes by
155running
bbb5013f 156
97f3cb72
RP
157@example
158./config.sub @var{xxx}
159@end example
160@noindent
161and
162@example
163./config.sub @code{@var{xarch}-@var{xvend}-@var{xos}}
164@end example
165@noindent
166which should both respond with @code{@var{xarch}-@var{xvend}-@var{xos}}
167and no error messages.
bbb5013f 168
b7becc8f
RP
169Now, go to the @file{bfd} directory and
170create a new file @file{bfd/hosts/h-@var{xxx}.h}. Examine the
97f3cb72
RP
171other @file{h-*.h} files as templates, and create one that brings in the
172right include files for your system, and defines any host-specific
173macros needed by GDB.
7f27984e 174
b7becc8f 175Then edit @file{bfd/configure.in}. Add shell script code to recognize your
97f3cb72 176@code{@var{xarch}-@var{xvend}-@var{xos}} configuration, and set
b7becc8f
RP
177@code{my_host} to @var{xxx} when you recognize it. This will cause your
178file @file{h-@var{xxx}.h} to be linked to @file{sysdep.h} at configuration
179time.
7f27984e 180
b7becc8f 181Also, if this host requires any changes to the Makefile, create a file
8cc1c08f 182@file{bfd/config/mh-@var{xxx}}, which includes the required lines.
7f27984e 183
b7becc8f
RP
184(If you have the binary utilities and/or GNU ld in the same tree,
185you'll also have to edit @file{binutils/configure.in} or
186@file{ld/configure.in} to match what you've done in the @file{bfd}
187directory.)
97f3cb72 188
8cc1c08f 189It's possible that the @file{libiberty} and @file{readline} directories
97f3cb72
RP
190won't need any changes for your configuration, but if they do, you can
191change the @file{configure.in} file there to recognize your system and
8cc1c08f 192map to an @file{mh-@var{xxx}} file. Then add @file{mh-@var{xxx}}
97f3cb72
RP
193to the @file{config/} subdirectory, to set any makefile variables you
194need. The only current options in there are things like @samp{-DSYSV}.
195
b7becc8f 196Aha! Now to configure GDB itself! Edit
97f3cb72
RP
197@file{gdb/configure.in} to recognize your system and set @code{gdb_host}
198to @var{xxx}, and (unless your desired target is already available) also
199set @code{gdb_target} to something appropriate (for instance,
200@var{xxx}). To handle new hosts, modify the segment after the comment
201@samp{# per-host}; to handle new targets, modify after @samp{#
202per-target}.
203@c Would it be simpler to just use different per-host and per-target
204@c *scripts*, and call them from {configure} ?
7f27984e 205
b7becc8f 206Finally, you'll need to specify and define GDB's host- and
8cc1c08f
JG
207target-dependent @file{.h} and @file{.c} files used for your
208configuration; the next two chapters discuss those.
7f27984e 209
7f27984e 210
97f3cb72
RP
211@node Host, Target, Config, Top
212@chapter Adding a New Host
7f27984e 213
97f3cb72
RP
214Once you have specified a new configuration for your host
215(@pxref{Config,,Adding a New Configuration}), there are two remaining
216pieces to making GDB work on a new machine. First, you have to make it
217host on the new machine (compile there, handle that machine's terminals
218properly, etc). If you will be cross-debugging to some other kind of
219system that's already supported, you are done.
46bc46eb 220
97f3cb72
RP
221If you want to use GDB to debug programs that run on the new machine,
222you have to get it to understand the machine's object files, symbol
b7becc8f 223files, and interfaces to processes. @pxref{Target,,Adding a New Target}
46bc46eb 224
aeb62c7b
JG
225Several files control GDB's configuration for host systems:
226
227@table @file
8cc1c08f
JG
228@item gdb/config/mh-@var{xxx}
229Specifies Makefile fragments needed when hosting on machine @var{xxx}.
230In particular, this lists the required machine-dependent object files,
231by defining @samp{XDEPFILES=@dots{}}. Also
232specifies the header file which describes host @var{xxx}, by defining
97f3cb72
RP
233@samp{XM_FILE= xm-@var{xxx}.h}. You can also define @samp{CC},
234@samp{REGEX} and @samp{REGEX1}, @samp{SYSV_DEFINE}, @samp{XM_CFLAGS},
aeb62c7b
JG
235@samp{XM_ADD_FILES}, @samp{XM_CLIBS}, @samp{XM_CDEPS},
236etc.; see @file{Makefile.in}.
237
238@item gdb/xm-@var{xxx}.h
239(@file{xm.h} is a link to this file, created by configure).
240Contains C macro definitions describing the host system environment,
241such as byte order, host C compiler and library, ptrace support,
242and core file structure. Crib from existing @file{xm-*.h} files
243to create a new one.
244
245@item gdb/@var{xxx}-xdep.c
246Contains any miscellaneous C code required for this machine
247as a host. On some machines it doesn't exist at all.
248@end table
46bc46eb 249
97f3cb72
RP
250There are some ``generic'' versions of routines that can be used by
251various host systems. These can be customized in various ways by macros
252defined in your @file{xm-@var{xxx}.h} file. If these routines work for
253the @var{xxx} host, you can just include the generic file's name (with
254@samp{.o}, not @samp{.c}) in @code{XDEPFILES}.
46bc46eb 255
97f3cb72
RP
256Otherwise, if your machine needs custom support routines, you will need
257to write routines that perform the same functions as the generic file.
258Put them into @code{@var{xxx}-xdep.c}, and put @code{@var{xxx}-xdep.o}
259into @code{XDEPFILES}.
46bc46eb 260
97f3cb72 261@subheading Generic Host Support Files
46bc46eb 262
aeb62c7b 263@table @file
46bc46eb 264
97f3cb72 265@item infptrace.c
aeb62c7b
JG
266This is the low level interface to inferior processes for systems
267using the Unix @code{ptrace} call in a vanilla way.
46bc46eb 268
aeb62c7b 269@item coredep.c::fetch_core_registers()
46bc46eb 270Support for reading registers out of a core file. This routine calls
aeb62c7b
JG
271@code{register_addr()}, see below.
272Now that BFD is used to read core files, virtually all machines should
273use @code{coredep.c}, and should just provide @code{fetch_core_registers} in
493cf018 274@code{@var{xxx}-xdep.c} (or @code{REGISTER_U_ADDR} in @code{xm-@var{xxx}.h}).
ca714d03 275
aeb62c7b 276@item coredep.c::register_addr()
97f3cb72 277If your @code{xm-@var{xxx}.h} file defines the macro
493cf018
JG
278@code{REGISTER_U_ADDR(addr, blockend, regno)}, it should be defined to
279set @code{addr} to the offset within the @samp{user}
280struct of GDB register number @code{regno}. @code{blockend} is the
281offset within the ``upage'' of @code{u.u_ar0}.
282If @code{REGISTER_U_ADDR} is defined,
d98259f8
RP
283@file{coredep.c} will define the @code{register_addr()} function and use
284the macro in it. If you do not define @code{REGISTER_U_ADDR}, but you
97f3cb72
RP
285are using the standard @code{fetch_core_registers()}, you will need to
286define your own version of @code{register_addr()}, put it into your
287@code{@var{xxx}-xdep.c} file, and be sure @code{@var{xxx}-xdep.o} is in
288the @code{XDEPFILES} list. If you have your own
289@code{fetch_core_registers()}, you may not need a separate
290@code{register_addr()}. Many custom @code{fetch_core_registers()}
291implementations simply locate the registers themselves.@refill
ca714d03 292@end table
46bc46eb 293
97f3cb72 294Object files needed when the target system is an @var{xxx} are listed
8cc1c08f 295in the file @file{config/mt-@var{xxx}}, in the makefile macro
97f3cb72
RP
296@samp{TDEPFILES = }@dots{}. The header file that defines the target
297system should be called @file{tm-@var{xxx}.h}, and should be specified
8cc1c08f 298as the value of @samp{TM_FILE} in @file{config/mt-@var{xxx}}. You can
97f3cb72
RP
299also define @samp{TM_CFLAGS}, @samp{TM_CLIBS}, and @samp{TM_CDEPS} in
300there; see @file{Makefile.in}.
1dbe1ef7 301
b7becc8f
RP
302Now, you are now ready to try configuring GDB to compile for your system.
303From the top level (above @file{bfd}, @file{gdb}, etc), do:
1dbe1ef7 304
7f09f15f 305@example
97f3cb72 306./configure @var{xxx} +target=vxworks960
7f09f15f 307@end example
1dbe1ef7
JG
308
309This will configure your system to cross-compile for VxWorks on
310the Intel 960, which is probably not what you really want, but it's
311a test case that works at this stage. (You haven't set up to be
97f3cb72 312able to debug programs that run @emph{on} @var{xxx} yet.)
1dbe1ef7
JG
313
314If this succeeds, you can try building it all with:
315
7f09f15f
JG
316@example
317make
318@end example
1dbe1ef7
JG
319
320Good luck! Comments and suggestions about this section are particularly
97f3cb72
RP
321welcome; send them to @samp{bug-gdb@@prep.ai.mit.edu}.
322
323When hosting GDB on a new operating system, to make it possible to debug
324core files, you will need to either write specific code for parsing your
325OS's core files, or customize @file{bfd/trad-core.c}. First, use
326whatever @code{#include} files your machine uses to define the struct of
327registers that is accessible (possibly in the u-area) in a core file
328(rather than @file{machine/reg.h}), and an include file that defines whatever
329header exists on a core file (e.g. the u-area or a @samp{struct core}). Then
330modify @code{trad_unix_core_file_p()} to use these values to set up the
331section information for the data segment, stack segment, any other
332segments in the core file (perhaps shared library contents or control
333information), ``registers'' segment, and if there are two discontiguous
334sets of registers (e.g. integer and float), the ``reg2'' segment. This
335section information basically delimits areas in the core file in a
336standard way, which the section-reading routines in BFD know how to seek
337around in.
338
b7becc8f
RP
339Then back in GDB, you need a matching routine called
340@code{fetch_core_registers()}. If you can use the generic one, it's in
341@file{core-dep.c}; if not, it's in your @file{@var{xxx}-xdep.c} file.
342It will be passed a char pointer to the entire ``registers'' segment,
343its length, and a zero; or a char pointer to the entire ``regs2''
344segment, its length, and a 2. The routine should suck out the supplied
345register values and install them into GDB's ``registers'' array.
346(@xref{New Architectures,,Defining a New Host or Target Architecture},
1dbe1ef7
JG
347for more info about this.)
348
97f3cb72
RP
349
350@node Target, Languages, Host, Top
7f09f15f 351@chapter Adding a New Target
d98259f8 352
97f3cb72
RP
353For a new target called @var{ttt}, first specify the configuration as
354described in @ref{Config,,Adding a New Configuration}. If your new
355target is the same as your new host, you've probably already done that.
356
8cc1c08f 357A variety of files specify attributes of the GDB target environment:
1dbe1ef7 358
aeb62c7b 359@table @file
8cc1c08f
JG
360@item gdb/config/mt-@var{ttt}
361Contains a Makefile fragment specific to this target.
aeb62c7b 362Specifies what object files are needed for target @var{ttt}, by
8cc1c08f 363defining @samp{TDEPFILES=@dots{}}.
aeb62c7b 364Also specifies the header file which describes @var{ttt}, by defining
8cc1c08f 365@samp{TM_FILE= tm-@var{ttt}.h}. You can also define @samp{TM_CFLAGS},
aeb62c7b
JG
366and other Makefile variables here; see @file{Makefile.in}.
367
368@item gdb/tm-@var{ttt}.h
369(@file{tm.h} is a link to this file, created by configure).
370Contains macro definitions about the target machine's
371registers, stack frame format and instructions.
372Crib from existing @file{tm-*.h} files when building a new one.
373
374@item gdb/@var{ttt}-tdep.c
375Contains any miscellaneous code required for this target machine.
376On some machines it doesn't exist at all. Sometimes the macros
377in @file{tm-@var{ttt}.h} become very complicated, so they are
378implemented as functions here instead, and the macro is simply
379defined to call the function.
380
381@item gdb/exec.c
382Defines functions for accessing files that are
97f3cb72
RP
383executable on the target system. These functions open and examine an
384exec file, extract data from one, write data to one, print information
385about one, etc. Now that executable files are handled with BFD, every
386target should be able to use the generic exec.c rather than its
387own custom code.
388
aeb62c7b
JG
389@item gdb/@var{arch}-pinsn.c
390Prints (disassembles) the target machine's instructions.
391This file is usually shared with other target machines which use the
392same processor, which is why it is @file{@var{arch}-pinsn.c} rather
393than @file{@var{ttt}-pinsn.c}.
394
395@item gdb/@var{arch}-opcode.h
396Contains some large initialized
397data structures describing the target machine's instructions.
398This is a bit strange for a @file{.h} file, but it's OK since
399it is only included in one place. @file{@var{arch}-opcode.h} is shared
400between the debugger and the assembler, if the GNU assembler has been
401ported to the target machine.
402
403@item gdb/tm-@var{arch}.h
404This often exists to describe the basic layout of the target machine's
405processor chip (registers, stack, etc).
406If used, it is included by @file{tm-@var{xxx}.h}. It can
407be shared among many targets that use the same processor.
408
409@item gdb/@var{arch}-tdep.c
410Similarly, there are often common subroutines that are shared by all
411target machines that use this particular architecture.
412@end table
413
414When adding support for a new target machine, there are various areas
415of support that might need change, or might be OK.
416
1dbe1ef7
JG
417If you are using an existing object file format (a.out or COFF),
418there is probably little to be done. See @file{bfd/doc/bfd.texinfo}
419for more information on writing new a.out or COFF versions.
420
421If you need to add a new object file format, you are beyond the scope
422of this document right now. Look at the structure of the a.out
97f3cb72 423and COFF support, build a transfer vector (@code{xvec}) for your new format,
aeb62c7b 424and start populating it with routines. Add it to the list in
1dbe1ef7
JG
425@file{bfd/targets.c}.
426
97f3cb72
RP
427If you are adding a new operating system for an existing CPU chip, add a
428@file{tm-@var{xos}.h} file that describes the operating system
429facilities that are unusual (extra symbol table info; the breakpoint
430instruction needed; etc). Then write a
431@file{tm-@var{xarch}-@var{xos}.h} that just @code{#include}s
432@file{tm-@var{xarch}.h} and @file{tm-@var{xos}.h}. (Now that we have
1dbe1ef7 433three-part configuration names, this will probably get revised to
97f3cb72
RP
434separate the @var{xos} configuration from the @var{xarch}
435configuration.)
436
437
438@node Languages, Releases, Target, Top
439@chapter Adding a Source Language to GDB
440
441To add other languages to GDB's expression parser, follow the following steps:
442
443@table @emph
444@item Create the expression parser.
445
446This should reside in a file @file{@var{lang}-exp.y}. Routines for building
447parsed expressions into a @samp{union exp_element} list are in @file{parse.c}.
448
aeb62c7b
JG
449Since we can't depend upon everyone having Bison, and YACC produces
450parsers that define a bunch of global names, the following lines
451@emph{must} be included at the top of the YACC parser, to prevent
452the various parsers from defining the same global names:
d98259f8 453
d98259f8 454@example
97f3cb72 455#define yyparse @var{lang}_parse
aeb62c7b 456#define yylex @var{lang}_lex
97f3cb72
RP
457#define yyerror @var{lang}_error
458#define yylval @var{lang}_lval
459#define yychar @var{lang}_char
460#define yydebug @var{lang}_debug
461#define yypact @var{lang}_pact
462#define yyr1 @var{lang}_r1
463#define yyr2 @var{lang}_r2
464#define yydef @var{lang}_def
465#define yychk @var{lang}_chk
466#define yypgo @var{lang}_pgo
467#define yyact @var{lang}_act
468#define yyexca @var{lang}_exca
aeb62c7b
JG
469#define yyerrflag @var{lang}_errflag
470#define yynerrs @var{lang}_nerrs
d98259f8 471@end example
d98259f8 472
b7becc8f
RP
473At the bottom of your parser, define a @code{struct language_defn} and
474initialize it with the right values for your language. Define an
475@code{initialize_@var{lang}} routine and have it call
476@samp{add_language(@var{lang}_language_defn)} to tell the rest of GDB
477that your language exists. You'll need some other supporting variables
478and functions, which will be used via pointers from your
479@code{@var{lang}_language_defn}. See the declaration of @code{struct
480language_defn} in @file{language.h}, and the other @file{*-exp.y} files,
481for more information.
482
97f3cb72
RP
483@item Add any evaluation routines, if necessary
484
485If you need new opcodes (that represent the operations of the language),
486add them to the enumerated type in @file{expression.h}. Add support
487code for these operations in @code{eval.c:evaluate_subexp()}. Add cases
488for new opcodes in two functions from @file{parse.c}:
489@code{prefixify_subexp()} and @code{length_of_subexp()}. These compute
490the number of @code{exp_element}s that a given operation takes up.
491
492@item Update some existing code
493
494Add an enumerated identifier for your language to the enumerated type
495@code{enum language} in @file{defs.h}.
496
497Update the routines in @file{language.c} so your language is included. These
498routines include type predicates and such, which (in some cases) are
499language dependent. If your language does not appear in the switch
500statement, an error is reported.
501
502Also included in @file{language.c} is the code that updates the variable
503@code{current_language}, and the routines that translate the
504@code{language_@var{lang}} enumerated identifier into a printable
505string.
506
507Update the function @code{_initialize_language} to include your language. This
508function picks the default language upon startup, so is dependent upon
509which languages that GDB is built for.
510
b7becc8f
RP
511Update @code{allocate_symtab} in @file{symfile.c} and/or symbol-reading
512code so that the language of each symtab (source file) is set properly.
513This is used to determine the language to use at each stack frame level.
514Currently, the language is set based upon the extension of the source
515file. If the language can be better inferred from the symbol
516information, please set the language of the symtab in the symbol-reading
517code.
97f3cb72
RP
518
519Add helper code to @code{expprint.c:print_subexp()} to handle any new
520expression opcodes you have added to @file{expression.h}. Also, add the
521printed representations of your operators to @code{op_print_tab}.
522
523@item Add a place of call
524
525Add a call to @code{@var{lang}_parse()} and @code{@var{lang}_error} in
526@code{parse.c:parse_exp_1()}.
527
528@item Use macros to trim code
529
530The user has the option of building GDB for some or all of the
531languages. If the user decides to build GDB for the language
532@var{lang}, then every file dependent on @file{language.h} will have the
533macro @code{_LANG_@var{lang}} defined in it. Use @code{#ifdef}s to
534leave out large routines that the user won't need if he or she is not
535using your language.
536
537Note that you do not need to do this in your YACC parser, since if GDB
538is not build for @var{lang}, then @file{@var{lang}-exp.tab.o} (the
539compiled form of your parser) is not linked into GDB at all.
540
541See the file @file{configure.in} for how GDB is configured for different
542languages.
543
544@item Edit @file{Makefile.in}
545
546Add dependencies in @file{Makefile.in}. Make sure you update the macro
547variables such as @code{HFILES} and @code{OBJS}, otherwise your code may
548not get linked in, or, worse yet, it may not get @code{tar}red into the
549distribution!
550@end table
551
552
493cf018 553@node Releases, Partial Symbol Tables, Languages, Top
97f3cb72
RP
554@chapter Configuring GDB for Release
555
b7becc8f
RP
556From the top level directory (containing @file{gdb}, @file{bfd},
557@file{libiberty}, and so on):
558@example
ca25cb3b 559make -f Makefile.in gdb.tar.Z
b7becc8f 560@end example
97f3cb72 561
b7becc8f
RP
562This will properly configure, clean, rebuild any files that are
563distributed pre-built (e.g. @file{c-exp.tab.c} or @file{refcard.ps}),
ca25cb3b
JG
564and will then make a tarfile. (If the top level directory has already
565beenn configured, you can just do @code{make gdb.tar.Z} instead.)
b7becc8f
RP
566
567This procedure requires:
568@itemize @bullet
569@item symbolic links
570@item @code{makeinfo} (texinfo2 level)
571@item @TeX{}
572@item @code{dvips}
573@item @code{yacc} or @code{bison}
574@end itemize
575@noindent
576@dots{} and the usual slew of utilities (@code{sed}, @code{tar}, etc.).
97f3cb72
RP
577
578@subheading TEMPORARY RELEASE PROCEDURE FOR DOCUMENTATION
579
580@file{gdb.texinfo} is currently marked up using the texinfo-2 macros,
581which are not yet a default for anything (but we have to start using
582them sometime).
583
584For making paper, the only thing this implies is the right generation of
585@file{texinfo.tex} needs to be included in the distribution.
586
587For making info files, however, rather than duplicating the texinfo2
588distribution, generate @file{gdb-all.texinfo} locally, and include the files
589@file{gdb.info*} in the distribution. Note the plural; @code{makeinfo} will
590split the document into one overall file and five or so included files.
591
592
493cf018
JG
593@node Partial Symbol Tables, BFD support for GDB, Releases, Top
594@chapter Partial Symbol Tables
595
596GDB has three types of symbol tables.
597
598@itemize @bullet
599@item full symbol tables (symtabs). These contain the main
600information about symbols and addresses.
601@item partial symbol tables (psymtabs). These contain enough
602information to know when to read the corresponding
603part of the full symbol table.
604@item minimal symbol tables (msymtabs). These contain information
605gleaned from non-debugging symbols.
606@end itemize
607
608This section describes partial symbol tables.
609
610A psymtab is constructed by doing a very quick pass over an executable
611file's debugging information. Small amounts of information are
612extracted -- enough to identify which parts of the symbol table will
613need to be re-read and fully digested later, when the user needs the
614information. The speed of this pass causes GDB to start up very
615quickly. Later, as the detailed rereading occurs, it occurs in small
616pieces, at various times, and the delay therefrom is mostly invisible to
617the user. (@xref{Symbol Reading}.)
618
619The symbols that show up in a file's psymtab should be, roughly, those
620visible to the debugger's user when the program is not running code from
621that file. These include external symbols and types, static
622symbols and types, and enum values declared at file scope.
623
624The psymtab also contains the range of instruction addresses that the
625full symbol table would represent.
626
627The idea is that there are only two ways for the user (or much of
628the code in the debugger) to reference a symbol:
629
630@itemize @bullet
631
632@item by its address
633(e.g. execution stops at some address which is inside a function
634in this file). The address will be noticed to be in the
635range of this psymtab, and the full symtab will be read in.
636@code{find_pc_function}, @code{find_pc_line}, and other @code{find_pc_@dots{}}
637functions handle this.
638
639@item by its name
640(e.g. the user asks to print a variable, or set a breakpoint on a
641function). Global names and file-scope names will be found in the
642psymtab, which will cause the symtab to be pulled in. Local names will
643have to be qualified by a global name, or a file-scope name, in which
644case we will have already read in the symtab as we evaluated the
645qualifier. Or, a local symbol can be referenced when
646we are "in" a local scope, in which case the first case applies.
647@code{lookup_symbol} does most of the work here.
648
649@end itemize
650
651The only reason that psymtabs exist is to cause a symtab to be read in
652at the right moment. Any symbol that can be elided from a psymtab,
653while still causing that to happen, should not appear in it. Since
654psymtabs don't have the idea of scope, you can't put local symbols in
655them anyway. Psymtabs don't have the idea of the type of a symbol,
656either, so types need not appear, unless they will be referenced by
657name.
658
659It is a bug for GDB to behave one way when only a psymtab has been read,
660and another way if the corresponding symtab has been read in. Such
661bugs are typically caused by a psymtab that does not contain all the
662visible symbols, or which has the wrong instruction address ranges.
663
664The psymtab for a particular section of a symbol-file (objfile)
665could be thrown away after the symtab has been read in. The symtab
666should always be searched before the psymtab, so the psymtab will
667never be used (in a bug-free environment). Currently,
668psymtabs are allocated on an obstack, and all the psymbols themselves
669are allocated in a pair of large arrays on an obstack, so there is
670little to be gained by trying to free them unless you want to do a lot
671more work.
672
673@node BFD support for GDB, Symbol Reading, Partial Symbol Tables, Top
97f3cb72 674@chapter Binary File Descriptor Library Support for GDB
7f09f15f
JG
675
676BFD provides support for GDB in several ways:
677
678@table @emph
679@item identifying executable and core files
680BFD will identify a variety of file types, including a.out, coff, and
681several variants thereof, as well as several kinds of core files.
682
683@item access to sections of files
684BFD parses the file headers to determine the names, virtual addresses,
685sizes, and file locations of all the various named sections in files
686(such as the text section or the data section). GDB simply calls
687BFD to read or write section X at byte offset Y for length Z.
688
689@item specialized core file support
690BFD provides routines to determine the failing command name stored
691in a core file, the signal with which the program failed, and whether
692a core file matches (i.e. could be a core dump of) a particular executable
693file.
694
695@item locating the symbol information
696GDB uses an internal interface of BFD to determine where to find the
697symbol information in an executable file or symbol-file. GDB itself
698handles the reading of symbols, since BFD does not ``understand'' debug
699symbols, but GDB uses BFD's cached information to find the symbols,
700string table, etc.
701@end table
702
b7becc8f
RP
703@c The interface for symbol reading is described in @ref{Symbol
704@c Reading,,Symbol Reading}.
7f09f15f 705
7f09f15f 706
97f3cb72 707@node Symbol Reading, Cleanups, BFD support for GDB, Top
eb752e4e
JG
708@chapter Symbol Reading
709
710GDB reads symbols from "symbol files". The usual symbol file is the
711file containing the program which gdb is debugging. GDB can be directed
712to use a different file for symbols (with the ``symbol-file''
713command), and it can also read more symbols via the ``add-file'' and ``load''
714commands, or while reading symbols from shared libraries.
715
716Symbol files are initially opened by @file{symfile.c} using the BFD
717library. BFD identifies the type of the file by examining its header.
718@code{symfile_init} then uses this identification to locate a
719set of symbol-reading functions.
720
721Symbol reading modules identify themselves to GDB by calling
722@code{add_symtab_fns} during their module initialization. The argument
723to @code{add_symtab_fns} is a @code{struct sym_fns} which contains
724the name (or name prefix) of the symbol format, the length of the prefix,
725and pointers to four functions. These functions are called at various
726times to process symbol-files whose identification matches the specified
727prefix.
728
729The functions supplied by each module are:
730
731@table @code
97f3cb72 732@item @var{xxx}_symfile_init(struct sym_fns *sf)
eb752e4e
JG
733
734Called from @code{symbol_file_add} when we are about to read a new
735symbol file. This function should clean up any internal state
736(possibly resulting from half-read previous files, for example)
737and prepare to read a new symbol file. Note that the symbol file
738which we are reading might be a new "main" symbol file, or might
739be a secondary symbol file whose symbols are being added to the
740existing symbol table.
741
97f3cb72 742The argument to @code{@var{xxx}_symfile_init} is a newly allocated
eb752e4e
JG
743@code{struct sym_fns} whose @code{bfd} field contains the BFD
744for the new symbol file being read. Its @code{private} field
745has been zeroed, and can be modified as desired. Typically,
746a struct of private information will be @code{malloc}'d, and
747a pointer to it will be placed in the @code{private} field.
748
97f3cb72 749There is no result from @code{@var{xxx}_symfile_init}, but it can call
eb752e4e
JG
750@code{error} if it detects an unavoidable problem.
751
97f3cb72 752@item @var{xxx}_new_init()
eb752e4e
JG
753
754Called from @code{symbol_file_add} when discarding existing symbols.
755This function need only handle
756the symbol-reading module's internal state; the symbol table data
757structures visible to the rest of GDB will be discarded by
758@code{symbol_file_add}. It has no arguments and no result.
97f3cb72 759It may be called after @code{@var{xxx}_symfile_init}, if a new symbol
eb752e4e
JG
760table is being read, or may be called alone if all symbols are
761simply being discarded.
762
97f3cb72 763@item @var{xxx}_symfile_read(struct sym_fns *sf, CORE_ADDR addr, int mainline)
eb752e4e
JG
764
765Called from @code{symbol_file_add} to actually read the symbols from a
766symbol-file into a set of psymtabs or symtabs.
767
d98259f8 768@code{sf} points to the struct sym_fns originally passed to
97f3cb72 769@code{@var{xxx}_sym_init} for possible initialization. @code{addr} is the
d98259f8
RP
770offset between the file's specified start address and its true address
771in memory. @code{mainline} is 1 if this is the main symbol table being
772read, and 0 if a secondary symbol file (e.g. shared library or
773dynamically loaded file) is being read.@refill
eb752e4e
JG
774@end table
775
776In addition, if a symbol-reading module creates psymtabs when
97f3cb72
RP
777@var{xxx}_symfile_read is called, these psymtabs will contain a pointer to
778a function @code{@var{xxx}_psymtab_to_symtab}, which can be called from
eb752e4e
JG
779any point in the GDB symbol-handling code.
780
781@table @code
97f3cb72 782@item @var{xxx}_psymtab_to_symtab (struct partial_symtab *pst)
eb752e4e
JG
783
784Called from @code{psymtab_to_symtab} (or the PSYMTAB_TO_SYMTAB
785macro) if the psymtab has not already been read in and had its
786@code{pst->symtab} pointer set. The argument is the psymtab
787to be fleshed-out into a symtab. Upon return, pst->readin
788should have been set to 1, and pst->symtab should contain a
789pointer to the new corresponding symtab, or zero if there
790were no symbols in that part of the symbol file.
791@end table
792
7f09f15f 793
97f3cb72
RP
794@node Cleanups, Wrapping, Symbol Reading, Top
795@chapter Cleanups
7f09f15f 796
97f3cb72
RP
797Cleanups are a structured way to deal with things that need to be done
798later. When your code does something (like @code{malloc} some memory, or open
799a file) that needs to be undone later (e.g. free the memory or close
800the file), it can make a cleanup. The cleanup will be done at some
801future point: when the command is finished, when an error occurs, or
802when your code decides it's time to do cleanups.
7f09f15f 803
97f3cb72
RP
804You can also discard cleanups, that is, throw them away without doing
805what they say. This is only done if you ask that it be done.
7f09f15f 806
97f3cb72 807Syntax:
7f09f15f 808
97f3cb72
RP
809@table @code
810@item @var{old_chain} = make_cleanup (@var{function}, @var{arg});
811Make a cleanup which will cause @var{function} to be called with @var{arg}
812(a @code{char *}) later. The result, @var{old_chain}, is a handle that can be
813passed to @code{do_cleanups} or @code{discard_cleanups} later. Unless you are
814going to call @code{do_cleanups} or @code{discard_cleanups} yourself,
815you can ignore the result from @code{make_cleanup}.
7f09f15f 816
7f09f15f 817
97f3cb72
RP
818@item do_cleanups (@var{old_chain});
819Perform all cleanups done since @code{make_cleanup} returned @var{old_chain}.
820E.g.:
821@example
822make_cleanup (a, 0);
823old = make_cleanup (b, 0);
824do_cleanups (old);
825@end example
826@noindent
827will call @code{b()} but will not call @code{a()}. The cleanup that calls @code{a()} will remain
828in the cleanup chain, and will be done later unless otherwise discarded.@refill
7f09f15f 829
97f3cb72
RP
830@item discard_cleanups (@var{old_chain});
831Same as @code{do_cleanups} except that it just removes the cleanups from the
832chain and does not call the specified functions.
7f09f15f 833
97f3cb72 834@end table
7f09f15f 835
97f3cb72
RP
836Some functions, e.g. @code{fputs_filtered()} or @code{error()}, specify that they
837``should not be called when cleanups are not in place''. This means
838that any actions you need to reverse in the case of an error or
839interruption must be on the cleanup chain before you call these functions,
840since they might never return to your code (they @samp{longjmp} instead).
7f09f15f 841
7f09f15f 842
edbf28ce 843@node Wrapping, Frames, Cleanups, Top
97f3cb72 844@chapter Wrapping Output Lines
7f09f15f 845
97f3cb72
RP
846Output that goes through @code{printf_filtered} or @code{fputs_filtered} or
847@code{fputs_demangled} needs only to have calls to @code{wrap_here} added
848in places that would be good breaking points. The utility routines
849will take care of actually wrapping if the line width is exceeded.
7f09f15f 850
97f3cb72
RP
851The argument to @code{wrap_here} is an indentation string which is printed
852@emph{only} if the line breaks there. This argument is saved away and used
853later. It must remain valid until the next call to @code{wrap_here} or
854until a newline has been printed through the @code{*_filtered} functions.
855Don't pass in a local variable and then return!
7f09f15f 856
97f3cb72
RP
857It is usually best to call @code{wrap_here()} after printing a comma or space.
858If you call it before printing a space, make sure that your indentation
859properly accounts for the leading space that will print if the line wraps
860there.
7f09f15f 861
97f3cb72
RP
862Any function or set of functions that produce filtered output must finish
863by printing a newline, to flush the wrap buffer, before switching to
864unfiltered (``@code{printf}'') output. Symbol reading routines that print
865warnings are a good example.
7f09f15f 866
7f09f15f 867
8cc1c08f 868@node Frames, , Wrapping, Top
edbf28ce
JG
869@chapter Frames
870
871A frame is a construct that GDB uses to keep track of calling and called
872functions.
873
8cc1c08f
JG
874@table @code
875@item FRAME_FP
876in the machine description has no meaning to the machine-independent
edbf28ce
JG
877part of GDB, except that it is used when setting up a new frame from
878scratch, as follows:
879
880@example
881 create_new_frame (read_register (FP_REGNUM), read_pc ()));
882@end example
883
8cc1c08f
JG
884Other than that, all the meaning imparted to @code{FP_REGNUM} is imparted by
885the machine-dependent code. So, @code{FP_REGNUM} can have any value that
886is convenient for the code that creates new frames. (@code{create_new_frame}
887calls @code{INIT_EXTRA_FRAME_INFO} if it is defined; that is where you should
888use the @code{FP_REGNUM} value, if your frames are nonstandard.)
889
890@item FRAME_CHAIN
891Given a GDB frame, determine the address of the calling function's
892frame. This will be used to create a new GDB frame struct, and then
893@code{INIT_EXTRA_FRAME_INFO} and @code{INIT_FRAME_PC} will be called for
894the new frame.
895@end table
edbf28ce 896
493cf018
JG
897@node Host Conditionals, , , Top
898@chapter Host Conditionals
899
900When GDB is configured and compiled, various macros are defined or left
901undefined, to control compilation based on the attributes of the host
902system. These macros and their meanings are:
903
904@emph{NOTE: For now, both host and target conditionals are here.
905Eliminate target conditionals from this list as they are identified.}
906
907@table @code
908@item ALIGN_SIZE
909alloca.c
910@item BLOCK_ADDRESS_FUNCTION_RELATIVE
911dbxread.c
912@item GDBINIT_FILENAME
913main.c
914@item KERNELDEBUG
915tm-hppa.h
916@item MEM_FNS_DECLARED
917defs.h
918@item NO_SYS_FILE
919dbxread.c
920@item USE_PROC_FS
921sparc-tdep.c
922@item PYRAMID_CONTROL_FRAME_DEBUGGING
923pyr-xdep.c
924@item SIGWINCH_HANDLER_BODY
925utils.c
926@item 1
927buildsym.c
928@item 1
929dbxread.c
930@item 1
931dbxread.c
932@item 1
933buildsym.c
934@item 1
935dwarfread.c
936@item 1
937valops.c
938@item 1
939valops.c
940@item 1
941pyr-xdep.c
942@item ADDITIONAL_OPTIONS
943main.c
944@item ADDITIONAL_OPTION_CASES
945main.c
946@item ADDITIONAL_OPTION_HANDLER
947main.c
948@item ADDITIONAL_OPTION_HELP
949main.c
950@item ADDR_BITS_REMOVE
951defs.h
952@item AIX_BUGGY_PTRACE_CONTINUE
953infptrace.c
954@item ALIGN_STACK_ON_STARTUP
955main.c
956@item ALTOS
957altos-xdep.c
958@item ALTOS_AS
959xm-altos.h
960@item ASCII_COFF
961remote-adapt.c
962@item ATTACH_DETACH
963hppabsd-xdep.c
964@item BADMAG
965coffread.c
966@item BCS
967tm-delta88.h
968@item BEFORE_MAIN_LOOP_HOOK
969main.c
970@item BELIEVE_PCC_PROMOTION
971coffread.c
972@item BELIEVE_PCC_PROMOTION_TYPE
973stabsread.c
974@item BIG_ENDIAN
975defs.h
976@item BITS_BIG_ENDIAN
977defs.h
978@item BKPT_AT_MAIN
979solib.c
980@item BLOCK_ADDRESS_ABSOLUTE
981dbxread.c
982@item BPT_VECTOR
983tm-68k.h
984@item BREAKPOINT
985tm-68k.h
986@item BREAKPOINT_DEBUG
987breakpoint.c
988@item BROKEN_LARGE_ALLOCA
989source.c
990@item BSTRING
991regex.c
992@item CALL_DUMMY
993valops.c
994@item CALL_DUMMY_LOCATION
995inferior.h
996@item CALL_DUMMY_STACK_ADJUST
997valops.c
998@item CANNOT_FETCH_REGISTER
999hppabsd-xdep.c
1000@item CANNOT_STORE_REGISTER
1001findvar.c
1002@item CFRONT_PRODUCER
1003dwarfread.c
1004@item CHILD_PREPARE_TO_STORE
1005inftarg.c
1006@item CLEAR_DEFERRED_STORES
1007inflow.c
1008@item CLEAR_SOLIB
1009objfiles.c
1010@item COFF_ENCAPSULATE
1011hppabsd-tdep.c
1012@item COFF_FORMAT
1013symm-tdep.c
1014@item COFF_NO_LONG_FILE_NAMES
1015coffread.c
1016@item CORE_NEEDS_RELOCATION
1017stack.c
1018@item CPLUS_MARKER
1019cplus-dem.c
1020@item CREATE_INFERIOR_HOOK
1021infrun.c
1022@item C_ALLOCA
1023regex.c
1024@item C_GLBLREG
1025coffread.c
1026@item DAMON
1027xcoffexec.c
1028@item DBXREAD_ONLY
1029partial-stab.h
1030@item DBX_PARM_SYMBOL_CLASS
1031stabsread.c
1032@item DEBUG
1033remote-adapt.c
1034@item DEBUG_INFO
1035partial-stab.h
1036@item DEBUG_PTRACE
1037hppabsd-xdep.c
1038@item DECR_PC_AFTER_BREAK
1039breakpoint.c
1040@item DEFAULT_PROMPT
1041main.c
1042@item DELTA88
1043m88k-xdep.c
1044@item DEV_TTY
1045symmisc.c
1046@item DGUX
1047m88k-xdep.c
1048@item DISABLE_UNSETTABLE_BREAK
1049breakpoint.c
1050@item DONT_USE_REMOTE
1051remote.c
1052@item DO_DEFERRED_STORES
1053infrun.c
1054@item DO_REGISTERS_INFO
1055infcmd.c
1056@item END_OF_TEXT_DEFAULT
1057dbxread.c
1058@item EXTERN
1059buildsym.h
1060@item EXTRACT_RETURN_VALUE
1061tm-68k.h
1062@item EXTRACT_STRUCT_VALUE_ADDRESS
1063values.c
1064@item EXTRA_FRAME_INFO
1065frame.h
1066@item EXTRA_SYMTAB_INFO
1067symtab.h
1068@item FETCH_INFERIOR_REGISTERS
1069Define this if the native-dependent code will provide its
1070own routines
1071@code{fetch_inferior_registers} and @code{store_inferior_registers}.
1072If this symbol is @emph{not} defined, the default routines in
1073@file{infptrace.c} are used for these functions.
1074@item FILES_INFO_HOOK
1075target.c
1076@item FIXME
1077coffread.c
1078@item FLOAT_INFO
1079infcmd.c
1080@item FOPEN_RB
1081defs.h
1082@item FP0_REGNUM
1083a68v-xdep.c
1084@item FPC_REGNUM
1085mach386-xdep.c
1086@item FP_REGNUM
1087parse.c
1088@item FRAMELESS_FUNCTION_INVOCATION
1089blockframe.c
1090@item FRAME_ARGS_ADDRESS_CORRECT
1091stack.c
1092@item FRAME_CHAIN_COMBINE
1093blockframe.c
1094@item FRAME_CHAIN_VALID
1095frame.h
1096@item FRAME_CHAIN_VALID_ALTERNATE
1097frame.h
1098@item FRAME_FIND_SAVED_REGS
1099stack.c
1100@item FRAME_GET_BASEREG_VALUE
1101frame.h
1102@item FRAME_NUM_ARGS
1103tm-68k.h
1104@item FRAME_SPECIFICATION_DYADIC
1105stack.c
1106@item FUNCTION_EPILOGUE_SIZE
1107coffread.c
1108@item F_OK
1109xm-ultra3.h
1110@item GCC2_COMPILED_FLAG_SYMBOL
1111dbxread.c
1112@item GCC_COMPILED_FLAG_SYMBOL
1113dbxread.c
1114@item GCC_MANGLE_BUG
1115symtab.c
1116@item GCC_PRODUCER
1117dwarfread.c
1118@item GDB_TARGET_IS_MACH386
1119mach386-xdep.c
1120@item GDB_TARGET_IS_SUN3
1121a68v-xdep.c
1122@item GDB_TARGET_IS_SUN386
1123sun386-xdep.c
1124@item GET_LONGJMP_TARGET
1125i386-tdep.c
1126@item GET_SAVED_REGISTER
1127findvar.c
1128@item GPLUS_PRODUCER
1129dwarfread.c
1130@item GR64_REGNUM
1131remote-adapt.c
1132@item GR64_REGNUM
1133remote-mm.c
1134@item HANDLE_RBRAC
1135partial-stab.h
1136@item HAVE_68881
1137m68k-tdep.c
1138@item HAVE_MMAP
1139state.c
1140@item HAVE_REGISTER_WINDOWS
1141findvar.c
1142@item HAVE_SIGSETMASK
1143main.c
1144@item HAVE_TERMIO
1145inflow.c
1146@item HEADER_SEEK_FD
1147arm-tdep.c
1148@item HOSTING_ONLY
1149xm-rtbsd.h
1150@item HOST_BYTE_ORDER
1151ieee-float.c
1152@item HPUX_ASM
1153xm-hp300hpux.h
1154@item HPUX_VERSION_5
1155hp300ux-xdep.c
1156@item HP_OS_BUG
1157infrun.c
1158@item I80960
1159remote-vx.c
1160@item IBM6000_HOST
1161breakpoint.c
1162@item IBM6000_TARGET
1163buildsym.c
1164@item IEEE_DEBUG
1165ieee-float.c
1166@item IEEE_FLOAT
1167valprint.c
1168@item IGNORE_SYMBOL
1169dbxread.c
1170@item INIT_EXTRA_FRAME_INFO
1171blockframe.c
1172@item INIT_EXTRA_SYMTAB_INFO
1173symfile.c
1174@item INIT_FRAME_PC
1175blockframe.c
1176@item INNER_THAN
1177valops.c
1178@item INT_MAX
1179defs.h
1180@item INT_MIN
1181defs.h
1182@item IN_GDB
1183i960-pinsn.c
1184@item IN_SIGTRAMP
1185infrun.c
1186@item IN_SOLIB_TRAMPOLINE
1187infrun.c
1188@item ISATTY
1189main.c
1190@item IS_TRAPPED_INTERNALVAR
1191values.c
1192@item KERNELDEBUG
1193dbxread.c
1194@item KERNEL_DEBUGGING
1195tm-ultra3.h
1196@item KERNEL_U_ADDR
1197Define this to the address of the @code{u} structure (the ``user struct'',
1198also known as the ``u-page'') in kernel virtual memory. GDB needs to know
1199this so that it can subtract this address from absolute addresses in
1200the upage, that are obtained via ptrace or from core files. On systems
1201that don't need this value, set it to zero.
1202@item KERNEL_U_ADDR_BSD
1203Define this to cause GDB to determine the address of @code{u} at runtime,
1204by using Berkeley-style @code{nlist} on the kernel's image in the root
1205directory.
1206@item KERNEL_U_ADDR_HPUX
1207Define this to cause GDB to determine the address of @code{u} at runtime,
1208by using HP-style @code{nlist} on the kernel's image in the root
1209directory.
1210@item LCC_PRODUCER
1211dwarfread.c
1212@item LITTLE_ENDIAN
1213defs.h
1214@item LOG_FILE
1215remote-adapt.c
1216@item LONGERNAMES
1217cplus-dem.c
1218@item LONGEST
1219defs.h
1220@item LONG_LONG
1221defs.h
1222@item LONG_MAX
1223defs.h
1224@item LSEEK_NOT_LINEAR
1225source.c
1226@item L_LNNO32
1227coffread.c
1228@item L_SET
1229xm-ultra3.h
1230@item MACHKERNELDEBUG
1231hppabsd-tdep.c
1232@item MAIN
1233cplus-dem.c
1234@item MAINTENANCE
1235dwarfread.c
1236@item MAINTENANCE_CMDS
1237breakpoint.c
1238@item MAINTENANCE_CMDS
1239maint.c
1240@item MALLOC_INCOMPATIBLE
1241defs.h
1242@item MIPSEL
1243mips-tdep.c
1244@item MMAP_BASE_ADDRESS
1245objfiles.c
1246@item MONO
1247ser-go32.c
1248@item MOTOROLA
1249xm-altos.h
1250@item NAMES_HAVE_UNDERSCORE
1251coffread.c
1252@item NBPG
1253altos-xdep.c
1254@item NEED_POSIX_SETPGID
1255infrun.c
1256@item NEED_TEXT_START_END
1257exec.c
1258@item NFAILURES
1259regex.c
1260@item NNPC_REGNUM
1261infrun.c
1262@item NORETURN
1263defs.h
1264@item NOTDEF
1265regex.c
1266@item NOTDEF
1267remote-adapt.c
1268@item NOTDEF
1269remote-mm.c
1270@item NOTICE_SIGNAL_HANDLING_CHANGE
1271infrun.c
1272@item NO_DEFINE_SYMBOL
1273xcoffread.c
1274@item NO_HIF_SUPPORT
1275remote-mm.c
1276@item NO_JOB_CONTROL
1277signals.h
1278@item NO_MALLOC_CHECK
1279utils.c
1280@item NO_MMALLOC
1281utils.c
1282@item NO_MMALLOC
1283objfiles.c
1284@item NO_MMALLOC
1285utils.c
1286@item NO_SIGINTERRUPT
1287remote-adapt.c
1288@item NO_SINGLE_STEP
1289infptrace.c
1290@item NO_TYPEDEFS
1291xcoffread.c
1292@item NO_TYPEDEFS
1293xcoffread.c
1294@item NPC_REGNUM
1295infcmd.c
1296@item NS32K_SVC_IMMED_OPERANDS
1297ns32k-opcode.h
1298@item NUMERIC_REG_NAMES
1299mips-tdep.c
1300@item N_SETV
1301dbxread.c
1302@item N_SET_MAGIC
1303hppabsd-tdep.c
1304@item NaN
1305tm-umax.h
1306@item ONE_PROCESS_WRITETEXT
1307breakpoint.c
1308@item O_BINARY
1309exec.c
1310@item O_RDONLY
1311xm-ultra3.h
1312@item PC
1313convx-opcode.h
1314@item PCC_SOL_BROKEN
1315dbxread.c
1316@item PC_IN_CALL_DUMMY
1317inferior.h
1318@item PC_LOAD_SEGMENT
1319stack.c
1320@item PC_REGNUM
1321parse.c
1322@item PRINT_RANDOM_SIGNAL
1323infcmd.c
1324@item PRINT_REGISTER_HOOK
1325infcmd.c
1326@item PRINT_TYPELESS_INTEGER
1327valprint.c
1328@item PROCESS_LINENUMBER_HOOK
1329buildsym.c
1330@item PROLOGUE_FIRSTLINE_OVERLAP
1331infrun.c
1332@item PSIGNAL_IN_SIGNAL_H
1333defs.h
1334@item PS_REGNUM
1335parse.c
1336@item PTRACE_ARG3_TYPE
1337inferior.h
1338@item PTRACE_FP_BUG
1339mach386-xdep.c
1340@item PT_ATTACH
1341hppabsd-xdep.c
1342@item PT_DETACH
1343hppabsd-xdep.c
1344@item PT_KILL
1345infptrace.c
1346@item PUSH_ARGUMENTS
1347valops.c
1348@item PYRAMID_CONTROL_FRAME_DEBUGGING
1349pyr-xdep.c
1350@item PYRAMID_CORE
1351pyr-xdep.c
1352@item PYRAMID_PTRACE
1353pyr-xdep.c
1354@item REGISTER_BYTES
1355remote.c
1356@item REGISTER_NAMES
1357tm-29k.h
1358@item REGISTER_U_ADDR
1359Defines the offset of the registers in the ``u area''; @pxref{Host}.
1360@item REG_STACK_SEGMENT
1361exec.c
1362@item REG_STRUCT_HAS_ADDR
1363findvar.c
1364@item RE_NREGS
1365regex.h
1366@item R_FP
1367dwarfread.c
1368@item R_OK
1369xm-altos.h
1370@item SDB_REG_TO_REGNUM
1371coffread.c
1372@item SEEK_END
1373state.c
1374@item SEEK_SET
1375state.c
1376@item SEM
1377coffread.c
1378@item SET_STACK_LIMIT_HUGE
1379infrun.c
1380@item SHELL_COMMAND_CONCAT
1381infrun.c
1382@item SHELL_FILE
1383infrun.c
1384@item SHIFT_INST_REGS
1385breakpoint.c
1386@item SIGN_EXTEND_CHAR
1387regex.c
1388@item SIGTRAP_STOP_AFTER_LOAD
1389infrun.c
1390@item SKIP_PROLOGUE
1391tm-68k.h
1392@item SKIP_PROLOGUE_FRAMELESS_P
1393blockframe.c
1394@item SKIP_TRAMPOLINE_CODE
1395infrun.c
1396@item SOLIB_ADD
1397core.c
1398@item SOLIB_CREATE_INFERIOR_HOOK
1399infrun.c
1400@item SOME_NAMES_HAVE_DOT
1401minsyms.c
1402@item SP_REGNUM
1403parse.c
1404@item STAB_REG_TO_REGNUM
1405stabsread.h
1406@item STACK_ALIGN
1407valops.c
1408@item STACK_DIRECTION
1409alloca.c
1410@item START_INFERIOR_TRAPS_EXPECTED
1411infrun.c
1412@item STOP_SIGNAL
1413main.c
1414@item STORE_RETURN_VALUE
1415tm-68k.h
1416@item SUN4_COMPILER_FEATURE
1417infrun.c
1418@item SUN_FIXED_LBRAC_BUG
1419dbxread.c
1420@item SVR4_SHARED_LIBS
1421solib.c
1422@item SWITCH_ENUM_BUG
1423regex.c
1424@item SYM1
1425tm-ultra3.h
1426@item SYMBOL_RELOADING_DEFAULT
1427symfile.c
1428@item SYNTAX_TABLE
1429regex.c
1430@item Sword
1431regex.c
1432@item TDESC
1433infrun.c
1434@item TIOCGETC
1435inflow.c
1436@item TIOCGLTC
1437inflow.c
1438@item TIOCGPGRP
1439inflow.c
1440@item TIOCLGET
1441inflow.c
1442@item TIOCLSET
1443inflow.c
1444@item TIOCNOTTY
1445inflow.c
1446@item TM_FILE_OVERRIDE
1447defs.h
1448@item T_ARG
1449coffread.c
1450@item T_VOID
1451coffread.c
1452@item UINT_MAX
1453defs.h
1454@item UPAGES
1455altos-xdep.c
1456@item USER
1457m88k-tdep.c
1458@item USE_GAS
1459xm-news.h
1460@item USE_O_NOCTTY
1461inflow.c
1462@item USE_PROC_FS
1463inferior.h
1464@item USE_STRUCT_CONVENTION
1465values.c
1466@item USG
1467Means that System V (prior to SVR4) include files are in use.
1468(FIXME: This symbol is abused in @file{infrun.c}, @file{regex.c},
1469@file{remote-nindy.c}, and @file{utils.c} for other things, at the moment.)
1470@item USIZE
1471xm-m88k.h
1472@item U_FPSTATE
1473i386-xdep.c
1474@item U_REGS_OFFSET
1475This is the offset of the registers in the upage. It need only be defined
1476if the generic ptrace register access routines in @file{infptrace.c}
1477are being used
1478(that is, @code{FETCH_INFERIOR_REGISTERS} is not defined). If the default
1479value from @file{infptrace.c} is good enough, leave it undefined.
1480
1481The default value means that u.u_ar0 @emph{points to} the location of the
1482registers. I'm guessing that @code{#define U_REGS_OFFSET 0} means that
1483u.u_ar0 @emph{is} the location of the registers.
1484@item VARIABLES_INSIDE_BLOCK
1485dbxread.c
1486@item WRS_ORIG
1487remote-vx.c
1488@item _LANG_c
1489language.c
1490@item _LANG_m2
1491language.c
1492@item __GNUC__
1493news-xdep.c
1494@item __GO32__
1495inflow.c
1496@item __HAVE_68881__
1497m68k-stub.c
1498@item __HPUX_ASM__
1499xm-hp300hpux.h
1500@item __INT_VARARGS_H
1501printcmd.c
1502@item __not_on_pyr_yet
1503pyr-xdep.c
1504@item alloca
1505defs.h
1506@item const
1507defs.h
1508@item GOULD_PN
1509gould-pinsn.c
1510@item emacs
1511alloca.c
1512@item hp800
1513xm-hppabsd.h
1514@item hp9000s800
1515dbxread.c
1516@item hpux
1517hppabsd-core.c
1518@item lint
1519valarith.c
1520@item longest_to_int
1521defs.h
1522@item mc68020
1523m68k-stub.c
1524@item notdef
1525gould-pinsn.c
1526@item ns32k_opcodeT
1527ns32k-opcode.h
1528@item sgi
1529mips-tdep.c
1530@item sparc
1531regex.c
1532@item static
1533alloca.c
1534@item sun
1535m68k-tdep.c
1536@item sun386
1537tm-sun386.h
1538@item test
1539regex.c
1540@item ultrix
1541xm-mips.h
1542@item volatile
1543defs.h
1544@item x_name
1545coffread.c
1546@item x_zeroes
1547coffread.c
1548@end table
1549
1550@node Target Conditionals, , , Top
1551@chapter Target Conditionals
1552
1553When GDB is configured and compiled, various macros are defined or left
1554undefined, to control compilation based on the attributes of the target
1555system. These macros and their meanings are:
1556
1557@emph{NOTE: For now, both host and target conditionals are here.
1558Eliminate host conditionals from this list as they are identified.}
1559
1560@table @code
1561@item ALIGN_SIZE
1562alloca.c
1563@item BLOCK_ADDRESS_FUNCTION_RELATIVE
1564dbxread.c
1565@item GDBINIT_FILENAME
1566main.c
1567@item KERNELDEBUG
1568tm-hppa.h
1569@item MEM_FNS_DECLARED
1570defs.h
1571@item NO_SYS_FILE
1572dbxread.c
1573@item USE_PROC_FS
1574sparc-tdep.c
1575@item PYRAMID_CONTROL_FRAME_DEBUGGING
1576pyr-xdep.c
1577@item SIGWINCH_HANDLER_BODY
1578utils.c
1579@item ADDITIONAL_OPTIONS
1580main.c
1581@item ADDITIONAL_OPTION_CASES
1582main.c
1583@item ADDITIONAL_OPTION_HANDLER
1584main.c
1585@item ADDITIONAL_OPTION_HELP
1586main.c
1587@item ADDR_BITS_REMOVE
1588defs.h
1589@item ALIGN_STACK_ON_STARTUP
1590main.c
1591@item ALTOS
1592altos-xdep.c
1593@item ALTOS_AS
1594xm-altos.h
1595@item ASCII_COFF
1596remote-adapt.c
1597@item ATTACH_DETACH
1598hppabsd-xdep.c
1599@item BADMAG
1600coffread.c
1601@item BCS
1602tm-delta88.h
1603@item BEFORE_MAIN_LOOP_HOOK
1604main.c
1605@item BELIEVE_PCC_PROMOTION
1606coffread.c
1607@item BELIEVE_PCC_PROMOTION_TYPE
1608stabsread.c
1609@item BIG_ENDIAN
1610defs.h
1611@item BITS_BIG_ENDIAN
1612defs.h
1613@item BKPT_AT_MAIN
1614solib.c
1615@item BLOCK_ADDRESS_ABSOLUTE
1616dbxread.c
1617@item BPT_VECTOR
1618tm-68k.h
1619@item BREAKPOINT
1620tm-68k.h
1621@item BREAKPOINT_DEBUG
1622breakpoint.c
1623@item BROKEN_LARGE_ALLOCA
1624source.c
1625@item BSTRING
1626regex.c
1627@item CALL_DUMMY
1628valops.c
1629@item CALL_DUMMY_LOCATION
1630inferior.h
1631@item CALL_DUMMY_STACK_ADJUST
1632valops.c
1633@item CANNOT_FETCH_REGISTER
1634hppabsd-xdep.c
1635@item CANNOT_STORE_REGISTER
1636findvar.c
1637@item CFRONT_PRODUCER
1638dwarfread.c
1639@item CHILD_PREPARE_TO_STORE
1640inftarg.c
1641@item CLEAR_DEFERRED_STORES
1642inflow.c
1643@item CLEAR_SOLIB
1644objfiles.c
1645@item COFF_ENCAPSULATE
1646hppabsd-tdep.c
1647@item COFF_FORMAT
1648symm-tdep.c
1649@item COFF_NO_LONG_FILE_NAMES
1650coffread.c
1651@item CORE_NEEDS_RELOCATION
1652stack.c
1653@item CPLUS_MARKER
1654cplus-dem.c
1655@item CREATE_INFERIOR_HOOK
1656infrun.c
1657@item C_ALLOCA
1658regex.c
1659@item C_GLBLREG
1660coffread.c
1661@item DAMON
1662xcoffexec.c
1663@item DBXREAD_ONLY
1664partial-stab.h
1665@item DBX_PARM_SYMBOL_CLASS
1666stabsread.c
1667@item DEBUG
1668remote-adapt.c
1669@item DEBUG_INFO
1670partial-stab.h
1671@item DEBUG_PTRACE
1672hppabsd-xdep.c
1673@item DECR_PC_AFTER_BREAK
1674breakpoint.c
1675@item DEFAULT_PROMPT
1676main.c
1677@item DELTA88
1678m88k-xdep.c
1679@item DEV_TTY
1680symmisc.c
1681@item DGUX
1682m88k-xdep.c
1683@item DISABLE_UNSETTABLE_BREAK
1684breakpoint.c
1685@item DONT_USE_REMOTE
1686remote.c
1687@item DO_DEFERRED_STORES
1688infrun.c
1689@item DO_REGISTERS_INFO
1690infcmd.c
1691@item END_OF_TEXT_DEFAULT
1692dbxread.c
1693@item EXTERN
1694buildsym.h
1695@item EXTRACT_RETURN_VALUE
1696tm-68k.h
1697@item EXTRACT_STRUCT_VALUE_ADDRESS
1698values.c
1699@item EXTRA_FRAME_INFO
1700frame.h
1701@item EXTRA_SYMTAB_INFO
1702symtab.h
1703@item FILES_INFO_HOOK
1704target.c
1705@item FIXME
1706coffread.c
1707@item FLOAT_INFO
1708infcmd.c
1709@item FOPEN_RB
1710defs.h
1711@item FP0_REGNUM
1712a68v-xdep.c
1713@item FPC_REGNUM
1714mach386-xdep.c
1715@item FP_REGNUM
1716parse.c
1717@item FRAMELESS_FUNCTION_INVOCATION
1718blockframe.c
1719@item FRAME_ARGS_ADDRESS_CORRECT
1720stack.c
1721@item FRAME_CHAIN_COMBINE
1722blockframe.c
1723@item FRAME_CHAIN_VALID
1724frame.h
1725@item FRAME_CHAIN_VALID_ALTERNATE
1726frame.h
1727@item FRAME_FIND_SAVED_REGS
1728stack.c
1729@item FRAME_GET_BASEREG_VALUE
1730frame.h
1731@item FRAME_NUM_ARGS
1732tm-68k.h
1733@item FRAME_SPECIFICATION_DYADIC
1734stack.c
1735@item FUNCTION_EPILOGUE_SIZE
1736coffread.c
1737@item F_OK
1738xm-ultra3.h
1739@item GCC2_COMPILED_FLAG_SYMBOL
1740dbxread.c
1741@item GCC_COMPILED_FLAG_SYMBOL
1742dbxread.c
1743@item GCC_MANGLE_BUG
1744symtab.c
1745@item GCC_PRODUCER
1746dwarfread.c
1747@item GDB_TARGET_IS_MACH386
1748mach386-xdep.c
1749@item GDB_TARGET_IS_SUN3
1750a68v-xdep.c
1751@item GDB_TARGET_IS_SUN386
1752sun386-xdep.c
1753@item GET_LONGJMP_TARGET
1754i386-tdep.c
1755@item GET_SAVED_REGISTER
1756findvar.c
1757@item GPLUS_PRODUCER
1758dwarfread.c
1759@item GR64_REGNUM
1760remote-adapt.c
1761@item GR64_REGNUM
1762remote-mm.c
1763@item HANDLE_RBRAC
1764partial-stab.h
1765@item HAVE_68881
1766m68k-tdep.c
1767@item HAVE_MMAP
1768state.c
1769@item HAVE_REGISTER_WINDOWS
1770findvar.c
1771@item HAVE_SIGSETMASK
1772main.c
1773@item HAVE_TERMIO
1774inflow.c
1775@item HEADER_SEEK_FD
1776arm-tdep.c
1777@item HOSTING_ONLY
1778xm-rtbsd.h
1779@item HOST_BYTE_ORDER
1780ieee-float.c
1781@item HPUX_ASM
1782xm-hp300hpux.h
1783@item HPUX_VERSION_5
1784hp300ux-xdep.c
1785@item HP_OS_BUG
1786infrun.c
1787@item I80960
1788remote-vx.c
1789@item IBM6000_HOST
1790breakpoint.c
1791@item IBM6000_TARGET
1792buildsym.c
1793@item IEEE_DEBUG
1794ieee-float.c
1795@item IEEE_FLOAT
1796valprint.c
1797@item IGNORE_SYMBOL
1798dbxread.c
1799@item INIT_EXTRA_FRAME_INFO
1800blockframe.c
1801@item INIT_EXTRA_SYMTAB_INFO
1802symfile.c
1803@item INIT_FRAME_PC
1804blockframe.c
1805@item INNER_THAN
1806valops.c
1807@item INT_MAX
1808defs.h
1809@item INT_MIN
1810defs.h
1811@item IN_GDB
1812i960-pinsn.c
1813@item IN_SIGTRAMP
1814infrun.c
1815@item IN_SOLIB_TRAMPOLINE
1816infrun.c
1817@item ISATTY
1818main.c
1819@item IS_TRAPPED_INTERNALVAR
1820values.c
1821@item KERNELDEBUG
1822dbxread.c
1823@item KERNEL_DEBUGGING
1824tm-ultra3.h
1825@item LCC_PRODUCER
1826dwarfread.c
1827@item LITTLE_ENDIAN
1828defs.h
1829@item LOG_FILE
1830remote-adapt.c
1831@item LONGERNAMES
1832cplus-dem.c
1833@item LONGEST
1834defs.h
1835@item LONG_LONG
1836defs.h
1837@item LONG_MAX
1838defs.h
1839@item LSEEK_NOT_LINEAR
1840source.c
1841@item L_LNNO32
1842coffread.c
1843@item L_SET
1844xm-ultra3.h
1845@item MACHKERNELDEBUG
1846hppabsd-tdep.c
1847@item MAIN
1848cplus-dem.c
1849@item MAINTENANCE
1850dwarfread.c
1851@item MAINTENANCE_CMDS
1852breakpoint.c
1853@item MAINTENANCE_CMDS
1854maint.c
1855@item MIPSEL
1856mips-tdep.c
1857@item MMAP_BASE_ADDRESS
1858objfiles.c
1859@item MOTOROLA
1860xm-altos.h
1861@item NAMES_HAVE_UNDERSCORE
1862coffread.c
1863@item NBPG
1864altos-xdep.c
1865@item NEED_POSIX_SETPGID
1866infrun.c
1867@item NEED_TEXT_START_END
1868exec.c
1869@item NFAILURES
1870regex.c
1871@item NNPC_REGNUM
1872infrun.c
1873@item NORETURN
1874defs.h
1875@item NOTDEF
1876regex.c
1877@item NOTDEF
1878remote-adapt.c
1879@item NOTDEF
1880remote-mm.c
1881@item NOTICE_SIGNAL_HANDLING_CHANGE
1882infrun.c
1883@item NO_DEFINE_SYMBOL
1884xcoffread.c
1885@item NO_HIF_SUPPORT
1886remote-mm.c
1887@item NO_JOB_CONTROL
1888signals.h
1889@item NO_MALLOC_CHECK
1890utils.c
1891@item NO_MMALLOC
1892utils.c
1893@item NO_MMALLOC
1894objfiles.c
1895@item NO_MMALLOC
1896utils.c
1897@item NO_SIGINTERRUPT
1898remote-adapt.c
1899@item NO_SINGLE_STEP
1900infptrace.c
1901@item NO_TYPEDEFS
1902xcoffread.c
1903@item NO_TYPEDEFS
1904xcoffread.c
1905@item NPC_REGNUM
1906infcmd.c
1907@item NS32K_SVC_IMMED_OPERANDS
1908ns32k-opcode.h
1909@item NUMERIC_REG_NAMES
1910mips-tdep.c
1911@item N_SETV
1912dbxread.c
1913@item N_SET_MAGIC
1914hppabsd-tdep.c
1915@item NaN
1916tm-umax.h
1917@item ONE_PROCESS_WRITETEXT
1918breakpoint.c
1919@item PC
1920convx-opcode.h
1921@item PCC_SOL_BROKEN
1922dbxread.c
1923@item PC_IN_CALL_DUMMY
1924inferior.h
1925@item PC_LOAD_SEGMENT
1926stack.c
1927@item PC_REGNUM
1928parse.c
1929@item PRINT_RANDOM_SIGNAL
1930infcmd.c
1931@item PRINT_REGISTER_HOOK
1932infcmd.c
1933@item PRINT_TYPELESS_INTEGER
1934valprint.c
1935@item PROCESS_LINENUMBER_HOOK
1936buildsym.c
1937@item PROLOGUE_FIRSTLINE_OVERLAP
1938infrun.c
1939@item PSIGNAL_IN_SIGNAL_H
1940defs.h
1941@item PS_REGNUM
1942parse.c
1943@item PTRACE_ARG3_TYPE
1944inferior.h
1945@item PTRACE_FP_BUG
1946mach386-xdep.c
1947@item PUSH_ARGUMENTS
1948valops.c
1949@item REGISTER_BYTES
1950remote.c
1951@item REGISTER_NAMES
1952tm-29k.h
1953@item REG_STACK_SEGMENT
1954exec.c
1955@item REG_STRUCT_HAS_ADDR
1956findvar.c
1957@item RE_NREGS
1958regex.h
1959@item R_FP
1960dwarfread.c
1961@item R_OK
1962xm-altos.h
1963@item SDB_REG_TO_REGNUM
1964coffread.c
1965@item SEEK_END
1966state.c
1967@item SEEK_SET
1968state.c
1969@item SEM
1970coffread.c
1971@item SET_STACK_LIMIT_HUGE
1972infrun.c
1973@item SHELL_COMMAND_CONCAT
1974infrun.c
1975@item SHELL_FILE
1976infrun.c
1977@item SHIFT_INST_REGS
1978breakpoint.c
1979@item SIGN_EXTEND_CHAR
1980regex.c
1981@item SIGTRAP_STOP_AFTER_LOAD
1982infrun.c
1983@item SKIP_PROLOGUE
1984tm-68k.h
1985@item SKIP_PROLOGUE_FRAMELESS_P
1986blockframe.c
1987@item SKIP_TRAMPOLINE_CODE
1988infrun.c
1989@item SOLIB_ADD
1990core.c
1991@item SOLIB_CREATE_INFERIOR_HOOK
1992infrun.c
1993@item SOME_NAMES_HAVE_DOT
1994minsyms.c
1995@item SP_REGNUM
1996parse.c
1997@item STAB_REG_TO_REGNUM
1998stabsread.h
1999@item STACK_ALIGN
2000valops.c
2001@item STACK_DIRECTION
2002alloca.c
2003@item START_INFERIOR_TRAPS_EXPECTED
2004infrun.c
2005@item STOP_SIGNAL
2006main.c
2007@item STORE_RETURN_VALUE
2008tm-68k.h
2009@item SUN4_COMPILER_FEATURE
2010infrun.c
2011@item SUN_FIXED_LBRAC_BUG
2012dbxread.c
2013@item SVR4_SHARED_LIBS
2014solib.c
2015@item SWITCH_ENUM_BUG
2016regex.c
2017@item SYM1
2018tm-ultra3.h
2019@item SYMBOL_RELOADING_DEFAULT
2020symfile.c
2021@item SYNTAX_TABLE
2022regex.c
2023@item Sword
2024regex.c
2025@item TARGET_BYTE_ORDER
2026defs.h
2027@item TARGET_CHAR_BIT
2028defs.h
2029@item TARGET_COMPLEX_BIT
2030defs.h
2031@item TARGET_DOUBLE_BIT
2032defs.h
2033@item TARGET_DOUBLE_COMPLEX_BIT
2034defs.h
2035@item TARGET_FLOAT_BIT
2036defs.h
2037@item TARGET_INT_BIT
2038defs.h
2039@item TARGET_LONG_BIT
2040defs.h
2041@item TARGET_LONG_DOUBLE_BIT
2042defs.h
2043@item TARGET_LONG_LONG_BIT
2044defs.h
2045@item TARGET_PTR_BIT
2046defs.h
2047@item TARGET_SHORT_BIT
2048defs.h
2049@item TDESC
2050infrun.c
2051@item TM_FILE_OVERRIDE
2052defs.h
2053@item T_ARG
2054coffread.c
2055@item T_VOID
2056coffread.c
2057@item UINT_MAX
2058defs.h
2059@item USER
2060m88k-tdep.c
2061@item USE_GAS
2062xm-news.h
2063@item USE_STRUCT_CONVENTION
2064values.c
2065@item USIZE
2066xm-m88k.h
2067@item U_FPSTATE
2068i386-xdep.c
2069@item VARIABLES_INSIDE_BLOCK
2070dbxread.c
2071@item WRS_ORIG
2072remote-vx.c
2073@item _LANG_c
2074language.c
2075@item _LANG_m2
2076language.c
2077@item __GO32__
2078inflow.c
2079@item __HAVE_68881__
2080m68k-stub.c
2081@item __HPUX_ASM__
2082xm-hp300hpux.h
2083@item __INT_VARARGS_H
2084printcmd.c
2085@item __not_on_pyr_yet
2086pyr-xdep.c
2087@item GOULD_PN
2088gould-pinsn.c
2089@item emacs
2090alloca.c
2091@item hp800
2092xm-hppabsd.h
2093@item hp9000s800
2094dbxread.c
2095@item hpux
2096hppabsd-core.c
2097@item longest_to_int
2098defs.h
2099@item mc68020
2100m68k-stub.c
2101@item ns32k_opcodeT
2102ns32k-opcode.h
2103@item sgi
2104mips-tdep.c
2105@item sparc
2106regex.c
2107@item static
2108alloca.c
2109@item sun
2110m68k-tdep.c
2111@item sun386
2112tm-sun386.h
2113@item test
2114regex.c
2115@item x_name
2116coffread.c
2117@item x_zeroes
2118coffread.c
2119@end table
2120
ca714d03
RP
2121@contents
2122@bye