From 493cf018c48156195e6e47d95a72557f25538157 Mon Sep 17 00:00:00 2001 From: John Gilmore Date: Fri, 11 Sep 1992 09:31:19 +0000 Subject: [PATCH] Improve doc of GDB config macros. --- gdb/doc/ChangeLog | 4 + gdb/doc/gdbint.texinfo | 1332 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 1327 insertions(+), 9 deletions(-) diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 3fd84e23dba..dbde57bb470 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,7 @@ +Fri Sep 11 01:34:25 1992 John Gilmore (gnu@sphagnum.cygnus.com) + + * doc/gdbint.texinfo: Improve doc of GDB config macros. + Wed Sep 9 16:52:06 1992 John Gilmore (gnu@cygnus.com) * stabs.texinfo: Remove Bothner's changes for C++ nested types. diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo index 4d353156bfd..bd4e1c97360 100644 --- a/gdb/doc/gdbint.texinfo +++ b/gdb/doc/gdbint.texinfo @@ -5,7 +5,7 @@ @ifinfo @format START-INFO-DIR-ENTRY -* Gdb Internals: (gdbint). The GNU debugger internals. +* Gdb-Internals: (gdbint). The GNU debugger internals. END-INFO-DIR-ENTRY @end format @end ifinfo @@ -13,7 +13,7 @@ END-INFO-DIR-ENTRY @ifinfo This file documents the internals of the GNU debugger GDB. -Copyright (C) 1990, 1991 Free Software Foundation, Inc. +Copyright (C) 1990, 1991, 1992 Free Software Foundation, Inc. Contributed by Cygnus Support. Written by John Gilmore. Permission is granted to make and distribute verbatim copies of @@ -51,7 +51,7 @@ regarded as a program in the language TeX). @end tex @vskip 0pt plus 1filll -Copyright @copyright{} 1990, 1991 Free Software Foundation, Inc. +Copyright @copyright{} 1990, 1991, 1992 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -61,6 +61,11 @@ are preserved on all copies. @node Top, README, (dir), (dir) +This file documents the internals of the GNU debugger GDB. It is a +collection of miscellaneous information with little form at this point. +Mostly, it is a repository into which you can put information about +GDB as you discover it (or as you design changes to GDB). + @menu * README:: The README File * New Architectures:: Defining a New Host or Target Architecture @@ -69,11 +74,14 @@ are preserved on all copies. * Target:: Adding a New Target * Languages:: Defining New Source Languages * Releases:: Configuring GDB for Release +* Partial Symbol Tables:: How GDB reads symbols quickly at startup * BFD support for GDB:: How BFD and GDB interface * Symbol Reading:: Defining New Symbol Readers * Cleanups:: Cleanups * Wrapping:: Wrapping Output Lines * Frames:: Keeping track of function calls +* Host Conditionals:: Controlling what features exist in the host +* Target Conditionals:: Controlling what features exist in the target @end menu @@ -263,12 +271,15 @@ Support for reading registers out of a core file. This routine calls @code{register_addr()}, see below. Now that BFD is used to read core files, virtually all machines should use @code{coredep.c}, and should just provide @code{fetch_core_registers} in -@code{@var{xxx}-xdep.c}. +@code{@var{xxx}-xdep.c} (or @code{REGISTER_U_ADDR} in @code{xm-@var{xxx}.h}). @item coredep.c::register_addr() If your @code{xm-@var{xxx}.h} file defines the macro -@code{REGISTER_U_ADDR(reg)} to be the offset within the @samp{user} -struct of a register (represented as a GDB register number), +@code{REGISTER_U_ADDR(addr, blockend, regno)}, it should be defined to +set @code{addr} to the offset within the @samp{user} +struct of GDB register number @code{regno}. @code{blockend} is the +offset within the ``upage'' of @code{u.u_ar0}. +If @code{REGISTER_U_ADDR} is defined, @file{coredep.c} will define the @code{register_addr()} function and use the macro in it. If you do not define @code{REGISTER_U_ADDR}, but you are using the standard @code{fetch_core_registers()}, you will need to @@ -539,7 +550,7 @@ distribution! @end table -@node Releases, BFD support for GDB, Languages, Top +@node Releases, Partial Symbol Tables, Languages, Top @chapter Configuring GDB for Release From the top level directory (containing @file{gdb}, @file{bfd}, @@ -578,7 +589,87 @@ distribution, generate @file{gdb-all.texinfo} locally, and include the files split the document into one overall file and five or so included files. -@node BFD support for GDB, Symbol Reading, Releases, Top +@node Partial Symbol Tables, BFD support for GDB, Releases, Top +@chapter Partial Symbol Tables + +GDB has three types of symbol tables. + +@itemize @bullet +@item full symbol tables (symtabs). These contain the main +information about symbols and addresses. +@item partial symbol tables (psymtabs). These contain enough +information to know when to read the corresponding +part of the full symbol table. +@item minimal symbol tables (msymtabs). These contain information +gleaned from non-debugging symbols. +@end itemize + +This section describes partial symbol tables. + +A psymtab is constructed by doing a very quick pass over an executable +file's debugging information. Small amounts of information are +extracted -- enough to identify which parts of the symbol table will +need to be re-read and fully digested later, when the user needs the +information. The speed of this pass causes GDB to start up very +quickly. Later, as the detailed rereading occurs, it occurs in small +pieces, at various times, and the delay therefrom is mostly invisible to +the user. (@xref{Symbol Reading}.) + +The symbols that show up in a file's psymtab should be, roughly, those +visible to the debugger's user when the program is not running code from +that file. These include external symbols and types, static +symbols and types, and enum values declared at file scope. + +The psymtab also contains the range of instruction addresses that the +full symbol table would represent. + +The idea is that there are only two ways for the user (or much of +the code in the debugger) to reference a symbol: + +@itemize @bullet + +@item by its address +(e.g. execution stops at some address which is inside a function +in this file). The address will be noticed to be in the +range of this psymtab, and the full symtab will be read in. +@code{find_pc_function}, @code{find_pc_line}, and other @code{find_pc_@dots{}} +functions handle this. + +@item by its name +(e.g. the user asks to print a variable, or set a breakpoint on a +function). Global names and file-scope names will be found in the +psymtab, which will cause the symtab to be pulled in. Local names will +have to be qualified by a global name, or a file-scope name, in which +case we will have already read in the symtab as we evaluated the +qualifier. Or, a local symbol can be referenced when +we are "in" a local scope, in which case the first case applies. +@code{lookup_symbol} does most of the work here. + +@end itemize + +The only reason that psymtabs exist is to cause a symtab to be read in +at the right moment. Any symbol that can be elided from a psymtab, +while still causing that to happen, should not appear in it. Since +psymtabs don't have the idea of scope, you can't put local symbols in +them anyway. Psymtabs don't have the idea of the type of a symbol, +either, so types need not appear, unless they will be referenced by +name. + +It is a bug for GDB to behave one way when only a psymtab has been read, +and another way if the corresponding symtab has been read in. Such +bugs are typically caused by a psymtab that does not contain all the +visible symbols, or which has the wrong instruction address ranges. + +The psymtab for a particular section of a symbol-file (objfile) +could be thrown away after the symtab has been read in. The symtab +should always be searched before the psymtab, so the psymtab will +never be used (in a bug-free environment). Currently, +psymtabs are allocated on an obstack, and all the psymbols themselves +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 BFD support for GDB, Symbol Reading, Partial Symbol Tables, Top @chapter Binary File Descriptor Library Support for GDB BFD provides support for GDB in several ways: @@ -802,6 +893,1229 @@ frame. This will be used to create a new GDB frame struct, and then the new frame. @end table +@node Host Conditionals, , , Top +@chapter Host Conditionals + +When GDB is configured and compiled, various macros are defined or left +undefined, to control compilation based on the attributes of the host +system. These macros and their meanings are: + +@emph{NOTE: For now, both host and target conditionals are here. +Eliminate target conditionals from this list as they are identified.} + +@table @code +@item ALIGN_SIZE +alloca.c +@item BLOCK_ADDRESS_FUNCTION_RELATIVE +dbxread.c +@item GDBINIT_FILENAME +main.c +@item KERNELDEBUG +tm-hppa.h +@item MEM_FNS_DECLARED +defs.h +@item NO_SYS_FILE +dbxread.c +@item USE_PROC_FS +sparc-tdep.c +@item PYRAMID_CONTROL_FRAME_DEBUGGING +pyr-xdep.c +@item SIGWINCH_HANDLER_BODY +utils.c +@item 1 +buildsym.c +@item 1 +dbxread.c +@item 1 +dbxread.c +@item 1 +buildsym.c +@item 1 +dwarfread.c +@item 1 +valops.c +@item 1 +valops.c +@item 1 +pyr-xdep.c +@item ADDITIONAL_OPTIONS +main.c +@item ADDITIONAL_OPTION_CASES +main.c +@item ADDITIONAL_OPTION_HANDLER +main.c +@item ADDITIONAL_OPTION_HELP +main.c +@item ADDR_BITS_REMOVE +defs.h +@item AIX_BUGGY_PTRACE_CONTINUE +infptrace.c +@item ALIGN_STACK_ON_STARTUP +main.c +@item ALTOS +altos-xdep.c +@item ALTOS_AS +xm-altos.h +@item ASCII_COFF +remote-adapt.c +@item ATTACH_DETACH +hppabsd-xdep.c +@item BADMAG +coffread.c +@item BCS +tm-delta88.h +@item BEFORE_MAIN_LOOP_HOOK +main.c +@item BELIEVE_PCC_PROMOTION +coffread.c +@item BELIEVE_PCC_PROMOTION_TYPE +stabsread.c +@item BIG_ENDIAN +defs.h +@item BITS_BIG_ENDIAN +defs.h +@item BKPT_AT_MAIN +solib.c +@item BLOCK_ADDRESS_ABSOLUTE +dbxread.c +@item BPT_VECTOR +tm-68k.h +@item BREAKPOINT +tm-68k.h +@item BREAKPOINT_DEBUG +breakpoint.c +@item BROKEN_LARGE_ALLOCA +source.c +@item BSTRING +regex.c +@item CALL_DUMMY +valops.c +@item CALL_DUMMY_LOCATION +inferior.h +@item CALL_DUMMY_STACK_ADJUST +valops.c +@item CANNOT_FETCH_REGISTER +hppabsd-xdep.c +@item CANNOT_STORE_REGISTER +findvar.c +@item CFRONT_PRODUCER +dwarfread.c +@item CHILD_PREPARE_TO_STORE +inftarg.c +@item CLEAR_DEFERRED_STORES +inflow.c +@item CLEAR_SOLIB +objfiles.c +@item COFF_ENCAPSULATE +hppabsd-tdep.c +@item COFF_FORMAT +symm-tdep.c +@item COFF_NO_LONG_FILE_NAMES +coffread.c +@item CORE_NEEDS_RELOCATION +stack.c +@item CPLUS_MARKER +cplus-dem.c +@item CREATE_INFERIOR_HOOK +infrun.c +@item C_ALLOCA +regex.c +@item C_GLBLREG +coffread.c +@item DAMON +xcoffexec.c +@item DBXREAD_ONLY +partial-stab.h +@item DBX_PARM_SYMBOL_CLASS +stabsread.c +@item DEBUG +remote-adapt.c +@item DEBUG_INFO +partial-stab.h +@item DEBUG_PTRACE +hppabsd-xdep.c +@item DECR_PC_AFTER_BREAK +breakpoint.c +@item DEFAULT_PROMPT +main.c +@item DELTA88 +m88k-xdep.c +@item DEV_TTY +symmisc.c +@item DGUX +m88k-xdep.c +@item DISABLE_UNSETTABLE_BREAK +breakpoint.c +@item DONT_USE_REMOTE +remote.c +@item DO_DEFERRED_STORES +infrun.c +@item DO_REGISTERS_INFO +infcmd.c +@item END_OF_TEXT_DEFAULT +dbxread.c +@item EXTERN +buildsym.h +@item EXTRACT_RETURN_VALUE +tm-68k.h +@item EXTRACT_STRUCT_VALUE_ADDRESS +values.c +@item EXTRA_FRAME_INFO +frame.h +@item EXTRA_SYMTAB_INFO +symtab.h +@item FETCH_INFERIOR_REGISTERS +Define this if the native-dependent code will provide its +own routines +@code{fetch_inferior_registers} and @code{store_inferior_registers}. +If this symbol is @emph{not} defined, the default routines in +@file{infptrace.c} are used for these functions. +@item FILES_INFO_HOOK +target.c +@item FIXME +coffread.c +@item FLOAT_INFO +infcmd.c +@item FOPEN_RB +defs.h +@item FP0_REGNUM +a68v-xdep.c +@item FPC_REGNUM +mach386-xdep.c +@item FP_REGNUM +parse.c +@item FRAMELESS_FUNCTION_INVOCATION +blockframe.c +@item FRAME_ARGS_ADDRESS_CORRECT +stack.c +@item FRAME_CHAIN_COMBINE +blockframe.c +@item FRAME_CHAIN_VALID +frame.h +@item FRAME_CHAIN_VALID_ALTERNATE +frame.h +@item FRAME_FIND_SAVED_REGS +stack.c +@item FRAME_GET_BASEREG_VALUE +frame.h +@item FRAME_NUM_ARGS +tm-68k.h +@item FRAME_SPECIFICATION_DYADIC +stack.c +@item FUNCTION_EPILOGUE_SIZE +coffread.c +@item F_OK +xm-ultra3.h +@item GCC2_COMPILED_FLAG_SYMBOL +dbxread.c +@item GCC_COMPILED_FLAG_SYMBOL +dbxread.c +@item GCC_MANGLE_BUG +symtab.c +@item GCC_PRODUCER +dwarfread.c +@item GDB_TARGET_IS_MACH386 +mach386-xdep.c +@item GDB_TARGET_IS_SUN3 +a68v-xdep.c +@item GDB_TARGET_IS_SUN386 +sun386-xdep.c +@item GET_LONGJMP_TARGET +i386-tdep.c +@item GET_SAVED_REGISTER +findvar.c +@item GPLUS_PRODUCER +dwarfread.c +@item GR64_REGNUM +remote-adapt.c +@item GR64_REGNUM +remote-mm.c +@item HANDLE_RBRAC +partial-stab.h +@item HAVE_68881 +m68k-tdep.c +@item HAVE_MMAP +state.c +@item HAVE_REGISTER_WINDOWS +findvar.c +@item HAVE_SIGSETMASK +main.c +@item HAVE_TERMIO +inflow.c +@item HEADER_SEEK_FD +arm-tdep.c +@item HOSTING_ONLY +xm-rtbsd.h +@item HOST_BYTE_ORDER +ieee-float.c +@item HPUX_ASM +xm-hp300hpux.h +@item HPUX_VERSION_5 +hp300ux-xdep.c +@item HP_OS_BUG +infrun.c +@item I80960 +remote-vx.c +@item IBM6000_HOST +breakpoint.c +@item IBM6000_TARGET +buildsym.c +@item IEEE_DEBUG +ieee-float.c +@item IEEE_FLOAT +valprint.c +@item IGNORE_SYMBOL +dbxread.c +@item INIT_EXTRA_FRAME_INFO +blockframe.c +@item INIT_EXTRA_SYMTAB_INFO +symfile.c +@item INIT_FRAME_PC +blockframe.c +@item INNER_THAN +valops.c +@item INT_MAX +defs.h +@item INT_MIN +defs.h +@item IN_GDB +i960-pinsn.c +@item IN_SIGTRAMP +infrun.c +@item IN_SOLIB_TRAMPOLINE +infrun.c +@item ISATTY +main.c +@item IS_TRAPPED_INTERNALVAR +values.c +@item KERNELDEBUG +dbxread.c +@item KERNEL_DEBUGGING +tm-ultra3.h +@item KERNEL_U_ADDR +Define this to the address of the @code{u} structure (the ``user struct'', +also known as the ``u-page'') in kernel virtual memory. GDB needs to know +this so that it can subtract this address from absolute addresses in +the upage, that are obtained via ptrace or from core files. On systems +that don't need this value, set it to zero. +@item KERNEL_U_ADDR_BSD +Define this to cause GDB to determine the address of @code{u} at runtime, +by using Berkeley-style @code{nlist} on the kernel's image in the root +directory. +@item KERNEL_U_ADDR_HPUX +Define this to cause GDB to determine the address of @code{u} at runtime, +by using HP-style @code{nlist} on the kernel's image in the root +directory. +@item LCC_PRODUCER +dwarfread.c +@item LITTLE_ENDIAN +defs.h +@item LOG_FILE +remote-adapt.c +@item LONGERNAMES +cplus-dem.c +@item LONGEST +defs.h +@item LONG_LONG +defs.h +@item LONG_MAX +defs.h +@item LSEEK_NOT_LINEAR +source.c +@item L_LNNO32 +coffread.c +@item L_SET +xm-ultra3.h +@item MACHKERNELDEBUG +hppabsd-tdep.c +@item MAIN +cplus-dem.c +@item MAINTENANCE +dwarfread.c +@item MAINTENANCE_CMDS +breakpoint.c +@item MAINTENANCE_CMDS +maint.c +@item MALLOC_INCOMPATIBLE +defs.h +@item MIPSEL +mips-tdep.c +@item MMAP_BASE_ADDRESS +objfiles.c +@item MONO +ser-go32.c +@item MOTOROLA +xm-altos.h +@item NAMES_HAVE_UNDERSCORE +coffread.c +@item NBPG +altos-xdep.c +@item NEED_POSIX_SETPGID +infrun.c +@item NEED_TEXT_START_END +exec.c +@item NFAILURES +regex.c +@item NNPC_REGNUM +infrun.c +@item NORETURN +defs.h +@item NOTDEF +regex.c +@item NOTDEF +remote-adapt.c +@item NOTDEF +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 +signals.h +@item NO_MALLOC_CHECK +utils.c +@item NO_MMALLOC +utils.c +@item NO_MMALLOC +objfiles.c +@item NO_MMALLOC +utils.c +@item NO_SIGINTERRUPT +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 +ns32k-opcode.h +@item NUMERIC_REG_NAMES +mips-tdep.c +@item N_SETV +dbxread.c +@item N_SET_MAGIC +hppabsd-tdep.c +@item NaN +tm-umax.h +@item ONE_PROCESS_WRITETEXT +breakpoint.c +@item O_BINARY +exec.c +@item O_RDONLY +xm-ultra3.h +@item PC +convx-opcode.h +@item PCC_SOL_BROKEN +dbxread.c +@item PC_IN_CALL_DUMMY +inferior.h +@item PC_LOAD_SEGMENT +stack.c +@item PC_REGNUM +parse.c +@item PRINT_RANDOM_SIGNAL +infcmd.c +@item PRINT_REGISTER_HOOK +infcmd.c +@item PRINT_TYPELESS_INTEGER +valprint.c +@item PROCESS_LINENUMBER_HOOK +buildsym.c +@item PROLOGUE_FIRSTLINE_OVERLAP +infrun.c +@item PSIGNAL_IN_SIGNAL_H +defs.h +@item PS_REGNUM +parse.c +@item PTRACE_ARG3_TYPE +inferior.h +@item PTRACE_FP_BUG +mach386-xdep.c +@item PT_ATTACH +hppabsd-xdep.c +@item PT_DETACH +hppabsd-xdep.c +@item PT_KILL +infptrace.c +@item PUSH_ARGUMENTS +valops.c +@item PYRAMID_CONTROL_FRAME_DEBUGGING +pyr-xdep.c +@item PYRAMID_CORE +pyr-xdep.c +@item PYRAMID_PTRACE +pyr-xdep.c +@item REGISTER_BYTES +remote.c +@item REGISTER_NAMES +tm-29k.h +@item REGISTER_U_ADDR +Defines the offset of the registers in the ``u area''; @pxref{Host}. +@item REG_STACK_SEGMENT +exec.c +@item REG_STRUCT_HAS_ADDR +findvar.c +@item RE_NREGS +regex.h +@item R_FP +dwarfread.c +@item R_OK +xm-altos.h +@item SDB_REG_TO_REGNUM +coffread.c +@item SEEK_END +state.c +@item SEEK_SET +state.c +@item SEM +coffread.c +@item SET_STACK_LIMIT_HUGE +infrun.c +@item SHELL_COMMAND_CONCAT +infrun.c +@item SHELL_FILE +infrun.c +@item SHIFT_INST_REGS +breakpoint.c +@item SIGN_EXTEND_CHAR +regex.c +@item SIGTRAP_STOP_AFTER_LOAD +infrun.c +@item SKIP_PROLOGUE +tm-68k.h +@item SKIP_PROLOGUE_FRAMELESS_P +blockframe.c +@item SKIP_TRAMPOLINE_CODE +infrun.c +@item SOLIB_ADD +core.c +@item SOLIB_CREATE_INFERIOR_HOOK +infrun.c +@item SOME_NAMES_HAVE_DOT +minsyms.c +@item SP_REGNUM +parse.c +@item STAB_REG_TO_REGNUM +stabsread.h +@item STACK_ALIGN +valops.c +@item STACK_DIRECTION +alloca.c +@item START_INFERIOR_TRAPS_EXPECTED +infrun.c +@item STOP_SIGNAL +main.c +@item STORE_RETURN_VALUE +tm-68k.h +@item SUN4_COMPILER_FEATURE +infrun.c +@item SUN_FIXED_LBRAC_BUG +dbxread.c +@item SVR4_SHARED_LIBS +solib.c +@item SWITCH_ENUM_BUG +regex.c +@item SYM1 +tm-ultra3.h +@item SYMBOL_RELOADING_DEFAULT +symfile.c +@item SYNTAX_TABLE +regex.c +@item Sword +regex.c +@item TDESC +infrun.c +@item TIOCGETC +inflow.c +@item TIOCGLTC +inflow.c +@item TIOCGPGRP +inflow.c +@item TIOCLGET +inflow.c +@item TIOCLSET +inflow.c +@item TIOCNOTTY +inflow.c +@item TM_FILE_OVERRIDE +defs.h +@item T_ARG +coffread.c +@item T_VOID +coffread.c +@item UINT_MAX +defs.h +@item UPAGES +altos-xdep.c +@item USER +m88k-tdep.c +@item USE_GAS +xm-news.h +@item USE_O_NOCTTY +inflow.c +@item USE_PROC_FS +inferior.h +@item USE_STRUCT_CONVENTION +values.c +@item USG +Means that System V (prior to SVR4) include files are in use. +(FIXME: This symbol is abused in @file{infrun.c}, @file{regex.c}, +@file{remote-nindy.c}, and @file{utils.c} for other things, at the moment.) +@item USIZE +xm-m88k.h +@item U_FPSTATE +i386-xdep.c +@item U_REGS_OFFSET +This is the offset of the registers in the upage. It need only be defined +if the generic ptrace register access routines in @file{infptrace.c} +are being used +(that is, @code{FETCH_INFERIOR_REGISTERS} is not defined). If the default +value from @file{infptrace.c} is good enough, leave it undefined. + +The default value means that u.u_ar0 @emph{points to} the location of the +registers. I'm guessing that @code{#define U_REGS_OFFSET 0} means that +u.u_ar0 @emph{is} the location of the registers. +@item VARIABLES_INSIDE_BLOCK +dbxread.c +@item WRS_ORIG +remote-vx.c +@item _LANG_c +language.c +@item _LANG_m2 +language.c +@item __GNUC__ +news-xdep.c +@item __GO32__ +inflow.c +@item __HAVE_68881__ +m68k-stub.c +@item __HPUX_ASM__ +xm-hp300hpux.h +@item __INT_VARARGS_H +printcmd.c +@item __not_on_pyr_yet +pyr-xdep.c +@item alloca +defs.h +@item const +defs.h +@item GOULD_PN +gould-pinsn.c +@item emacs +alloca.c +@item hp800 +xm-hppabsd.h +@item hp9000s800 +dbxread.c +@item hpux +hppabsd-core.c +@item lint +valarith.c +@item longest_to_int +defs.h +@item mc68020 +m68k-stub.c +@item notdef +gould-pinsn.c +@item ns32k_opcodeT +ns32k-opcode.h +@item sgi +mips-tdep.c +@item sparc +regex.c +@item static +alloca.c +@item sun +m68k-tdep.c +@item sun386 +tm-sun386.h +@item test +regex.c +@item ultrix +xm-mips.h +@item volatile +defs.h +@item x_name +coffread.c +@item x_zeroes +coffread.c +@end table + +@node Target Conditionals, , , Top +@chapter Target Conditionals + +When GDB is configured and compiled, various macros are defined or left +undefined, to control compilation based on the attributes of the target +system. These macros and their meanings are: + +@emph{NOTE: For now, both host and target conditionals are here. +Eliminate host conditionals from this list as they are identified.} + +@table @code +@item ALIGN_SIZE +alloca.c +@item BLOCK_ADDRESS_FUNCTION_RELATIVE +dbxread.c +@item GDBINIT_FILENAME +main.c +@item KERNELDEBUG +tm-hppa.h +@item MEM_FNS_DECLARED +defs.h +@item NO_SYS_FILE +dbxread.c +@item USE_PROC_FS +sparc-tdep.c +@item PYRAMID_CONTROL_FRAME_DEBUGGING +pyr-xdep.c +@item SIGWINCH_HANDLER_BODY +utils.c +@item ADDITIONAL_OPTIONS +main.c +@item ADDITIONAL_OPTION_CASES +main.c +@item ADDITIONAL_OPTION_HANDLER +main.c +@item ADDITIONAL_OPTION_HELP +main.c +@item ADDR_BITS_REMOVE +defs.h +@item ALIGN_STACK_ON_STARTUP +main.c +@item ALTOS +altos-xdep.c +@item ALTOS_AS +xm-altos.h +@item ASCII_COFF +remote-adapt.c +@item ATTACH_DETACH +hppabsd-xdep.c +@item BADMAG +coffread.c +@item BCS +tm-delta88.h +@item BEFORE_MAIN_LOOP_HOOK +main.c +@item BELIEVE_PCC_PROMOTION +coffread.c +@item BELIEVE_PCC_PROMOTION_TYPE +stabsread.c +@item BIG_ENDIAN +defs.h +@item BITS_BIG_ENDIAN +defs.h +@item BKPT_AT_MAIN +solib.c +@item BLOCK_ADDRESS_ABSOLUTE +dbxread.c +@item BPT_VECTOR +tm-68k.h +@item BREAKPOINT +tm-68k.h +@item BREAKPOINT_DEBUG +breakpoint.c +@item BROKEN_LARGE_ALLOCA +source.c +@item BSTRING +regex.c +@item CALL_DUMMY +valops.c +@item CALL_DUMMY_LOCATION +inferior.h +@item CALL_DUMMY_STACK_ADJUST +valops.c +@item CANNOT_FETCH_REGISTER +hppabsd-xdep.c +@item CANNOT_STORE_REGISTER +findvar.c +@item CFRONT_PRODUCER +dwarfread.c +@item CHILD_PREPARE_TO_STORE +inftarg.c +@item CLEAR_DEFERRED_STORES +inflow.c +@item CLEAR_SOLIB +objfiles.c +@item COFF_ENCAPSULATE +hppabsd-tdep.c +@item COFF_FORMAT +symm-tdep.c +@item COFF_NO_LONG_FILE_NAMES +coffread.c +@item CORE_NEEDS_RELOCATION +stack.c +@item CPLUS_MARKER +cplus-dem.c +@item CREATE_INFERIOR_HOOK +infrun.c +@item C_ALLOCA +regex.c +@item C_GLBLREG +coffread.c +@item DAMON +xcoffexec.c +@item DBXREAD_ONLY +partial-stab.h +@item DBX_PARM_SYMBOL_CLASS +stabsread.c +@item DEBUG +remote-adapt.c +@item DEBUG_INFO +partial-stab.h +@item DEBUG_PTRACE +hppabsd-xdep.c +@item DECR_PC_AFTER_BREAK +breakpoint.c +@item DEFAULT_PROMPT +main.c +@item DELTA88 +m88k-xdep.c +@item DEV_TTY +symmisc.c +@item DGUX +m88k-xdep.c +@item DISABLE_UNSETTABLE_BREAK +breakpoint.c +@item DONT_USE_REMOTE +remote.c +@item DO_DEFERRED_STORES +infrun.c +@item DO_REGISTERS_INFO +infcmd.c +@item END_OF_TEXT_DEFAULT +dbxread.c +@item EXTERN +buildsym.h +@item EXTRACT_RETURN_VALUE +tm-68k.h +@item EXTRACT_STRUCT_VALUE_ADDRESS +values.c +@item EXTRA_FRAME_INFO +frame.h +@item EXTRA_SYMTAB_INFO +symtab.h +@item FILES_INFO_HOOK +target.c +@item FIXME +coffread.c +@item FLOAT_INFO +infcmd.c +@item FOPEN_RB +defs.h +@item FP0_REGNUM +a68v-xdep.c +@item FPC_REGNUM +mach386-xdep.c +@item FP_REGNUM +parse.c +@item FRAMELESS_FUNCTION_INVOCATION +blockframe.c +@item FRAME_ARGS_ADDRESS_CORRECT +stack.c +@item FRAME_CHAIN_COMBINE +blockframe.c +@item FRAME_CHAIN_VALID +frame.h +@item FRAME_CHAIN_VALID_ALTERNATE +frame.h +@item FRAME_FIND_SAVED_REGS +stack.c +@item FRAME_GET_BASEREG_VALUE +frame.h +@item FRAME_NUM_ARGS +tm-68k.h +@item FRAME_SPECIFICATION_DYADIC +stack.c +@item FUNCTION_EPILOGUE_SIZE +coffread.c +@item F_OK +xm-ultra3.h +@item GCC2_COMPILED_FLAG_SYMBOL +dbxread.c +@item GCC_COMPILED_FLAG_SYMBOL +dbxread.c +@item GCC_MANGLE_BUG +symtab.c +@item GCC_PRODUCER +dwarfread.c +@item GDB_TARGET_IS_MACH386 +mach386-xdep.c +@item GDB_TARGET_IS_SUN3 +a68v-xdep.c +@item GDB_TARGET_IS_SUN386 +sun386-xdep.c +@item GET_LONGJMP_TARGET +i386-tdep.c +@item GET_SAVED_REGISTER +findvar.c +@item GPLUS_PRODUCER +dwarfread.c +@item GR64_REGNUM +remote-adapt.c +@item GR64_REGNUM +remote-mm.c +@item HANDLE_RBRAC +partial-stab.h +@item HAVE_68881 +m68k-tdep.c +@item HAVE_MMAP +state.c +@item HAVE_REGISTER_WINDOWS +findvar.c +@item HAVE_SIGSETMASK +main.c +@item HAVE_TERMIO +inflow.c +@item HEADER_SEEK_FD +arm-tdep.c +@item HOSTING_ONLY +xm-rtbsd.h +@item HOST_BYTE_ORDER +ieee-float.c +@item HPUX_ASM +xm-hp300hpux.h +@item HPUX_VERSION_5 +hp300ux-xdep.c +@item HP_OS_BUG +infrun.c +@item I80960 +remote-vx.c +@item IBM6000_HOST +breakpoint.c +@item IBM6000_TARGET +buildsym.c +@item IEEE_DEBUG +ieee-float.c +@item IEEE_FLOAT +valprint.c +@item IGNORE_SYMBOL +dbxread.c +@item INIT_EXTRA_FRAME_INFO +blockframe.c +@item INIT_EXTRA_SYMTAB_INFO +symfile.c +@item INIT_FRAME_PC +blockframe.c +@item INNER_THAN +valops.c +@item INT_MAX +defs.h +@item INT_MIN +defs.h +@item IN_GDB +i960-pinsn.c +@item IN_SIGTRAMP +infrun.c +@item IN_SOLIB_TRAMPOLINE +infrun.c +@item ISATTY +main.c +@item IS_TRAPPED_INTERNALVAR +values.c +@item KERNELDEBUG +dbxread.c +@item KERNEL_DEBUGGING +tm-ultra3.h +@item LCC_PRODUCER +dwarfread.c +@item LITTLE_ENDIAN +defs.h +@item LOG_FILE +remote-adapt.c +@item LONGERNAMES +cplus-dem.c +@item LONGEST +defs.h +@item LONG_LONG +defs.h +@item LONG_MAX +defs.h +@item LSEEK_NOT_LINEAR +source.c +@item L_LNNO32 +coffread.c +@item L_SET +xm-ultra3.h +@item MACHKERNELDEBUG +hppabsd-tdep.c +@item MAIN +cplus-dem.c +@item MAINTENANCE +dwarfread.c +@item MAINTENANCE_CMDS +breakpoint.c +@item MAINTENANCE_CMDS +maint.c +@item MIPSEL +mips-tdep.c +@item MMAP_BASE_ADDRESS +objfiles.c +@item MOTOROLA +xm-altos.h +@item NAMES_HAVE_UNDERSCORE +coffread.c +@item NBPG +altos-xdep.c +@item NEED_POSIX_SETPGID +infrun.c +@item NEED_TEXT_START_END +exec.c +@item NFAILURES +regex.c +@item NNPC_REGNUM +infrun.c +@item NORETURN +defs.h +@item NOTDEF +regex.c +@item NOTDEF +remote-adapt.c +@item NOTDEF +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 +signals.h +@item NO_MALLOC_CHECK +utils.c +@item NO_MMALLOC +utils.c +@item NO_MMALLOC +objfiles.c +@item NO_MMALLOC +utils.c +@item NO_SIGINTERRUPT +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 +ns32k-opcode.h +@item NUMERIC_REG_NAMES +mips-tdep.c +@item N_SETV +dbxread.c +@item N_SET_MAGIC +hppabsd-tdep.c +@item NaN +tm-umax.h +@item ONE_PROCESS_WRITETEXT +breakpoint.c +@item PC +convx-opcode.h +@item PCC_SOL_BROKEN +dbxread.c +@item PC_IN_CALL_DUMMY +inferior.h +@item PC_LOAD_SEGMENT +stack.c +@item PC_REGNUM +parse.c +@item PRINT_RANDOM_SIGNAL +infcmd.c +@item PRINT_REGISTER_HOOK +infcmd.c +@item PRINT_TYPELESS_INTEGER +valprint.c +@item PROCESS_LINENUMBER_HOOK +buildsym.c +@item PROLOGUE_FIRSTLINE_OVERLAP +infrun.c +@item PSIGNAL_IN_SIGNAL_H +defs.h +@item PS_REGNUM +parse.c +@item PTRACE_ARG3_TYPE +inferior.h +@item PTRACE_FP_BUG +mach386-xdep.c +@item PUSH_ARGUMENTS +valops.c +@item REGISTER_BYTES +remote.c +@item REGISTER_NAMES +tm-29k.h +@item REG_STACK_SEGMENT +exec.c +@item REG_STRUCT_HAS_ADDR +findvar.c +@item RE_NREGS +regex.h +@item R_FP +dwarfread.c +@item R_OK +xm-altos.h +@item SDB_REG_TO_REGNUM +coffread.c +@item SEEK_END +state.c +@item SEEK_SET +state.c +@item SEM +coffread.c +@item SET_STACK_LIMIT_HUGE +infrun.c +@item SHELL_COMMAND_CONCAT +infrun.c +@item SHELL_FILE +infrun.c +@item SHIFT_INST_REGS +breakpoint.c +@item SIGN_EXTEND_CHAR +regex.c +@item SIGTRAP_STOP_AFTER_LOAD +infrun.c +@item SKIP_PROLOGUE +tm-68k.h +@item SKIP_PROLOGUE_FRAMELESS_P +blockframe.c +@item SKIP_TRAMPOLINE_CODE +infrun.c +@item SOLIB_ADD +core.c +@item SOLIB_CREATE_INFERIOR_HOOK +infrun.c +@item SOME_NAMES_HAVE_DOT +minsyms.c +@item SP_REGNUM +parse.c +@item STAB_REG_TO_REGNUM +stabsread.h +@item STACK_ALIGN +valops.c +@item STACK_DIRECTION +alloca.c +@item START_INFERIOR_TRAPS_EXPECTED +infrun.c +@item STOP_SIGNAL +main.c +@item STORE_RETURN_VALUE +tm-68k.h +@item SUN4_COMPILER_FEATURE +infrun.c +@item SUN_FIXED_LBRAC_BUG +dbxread.c +@item SVR4_SHARED_LIBS +solib.c +@item SWITCH_ENUM_BUG +regex.c +@item SYM1 +tm-ultra3.h +@item SYMBOL_RELOADING_DEFAULT +symfile.c +@item SYNTAX_TABLE +regex.c +@item Sword +regex.c +@item TARGET_BYTE_ORDER +defs.h +@item TARGET_CHAR_BIT +defs.h +@item TARGET_COMPLEX_BIT +defs.h +@item TARGET_DOUBLE_BIT +defs.h +@item TARGET_DOUBLE_COMPLEX_BIT +defs.h +@item TARGET_FLOAT_BIT +defs.h +@item TARGET_INT_BIT +defs.h +@item TARGET_LONG_BIT +defs.h +@item TARGET_LONG_DOUBLE_BIT +defs.h +@item TARGET_LONG_LONG_BIT +defs.h +@item TARGET_PTR_BIT +defs.h +@item TARGET_SHORT_BIT +defs.h +@item TDESC +infrun.c +@item TM_FILE_OVERRIDE +defs.h +@item T_ARG +coffread.c +@item T_VOID +coffread.c +@item UINT_MAX +defs.h +@item USER +m88k-tdep.c +@item USE_GAS +xm-news.h +@item USE_STRUCT_CONVENTION +values.c +@item USIZE +xm-m88k.h +@item U_FPSTATE +i386-xdep.c +@item VARIABLES_INSIDE_BLOCK +dbxread.c +@item WRS_ORIG +remote-vx.c +@item _LANG_c +language.c +@item _LANG_m2 +language.c +@item __GO32__ +inflow.c +@item __HAVE_68881__ +m68k-stub.c +@item __HPUX_ASM__ +xm-hp300hpux.h +@item __INT_VARARGS_H +printcmd.c +@item __not_on_pyr_yet +pyr-xdep.c +@item GOULD_PN +gould-pinsn.c +@item emacs +alloca.c +@item hp800 +xm-hppabsd.h +@item hp9000s800 +dbxread.c +@item hpux +hppabsd-core.c +@item longest_to_int +defs.h +@item mc68020 +m68k-stub.c +@item ns32k_opcodeT +ns32k-opcode.h +@item sgi +mips-tdep.c +@item sparc +regex.c +@item static +alloca.c +@item sun +m68k-tdep.c +@item sun386 +tm-sun386.h +@item test +regex.c +@item x_name +coffread.c +@item x_zeroes +coffread.c +@end table + @contents @bye - -- 2.30.2