* doc/gdbint.texinfo: document a few more macros, create new
section for native macros.
This commit is contained in:
parent
9d4016257d
commit
968720bf25
2 changed files with 117 additions and 55 deletions
|
@ -1,3 +1,8 @@
|
|||
Thu Oct 8 16:27:45 1992 K. Richard Pixley (rich@sendai.cygnus.com)
|
||||
|
||||
* doc/gdbint.texinfo: document a few more macros, create new
|
||||
section for native macros.
|
||||
|
||||
Thu Oct 8 13:52:46 1992 Stu Grossman (grossman at cygnus.com)
|
||||
|
||||
* Makefile.in alldeps.mak depend: Rip out 29k/udi pending
|
||||
|
|
|
@ -79,9 +79,11 @@ GDB as you discover it (or as you design changes to GDB).
|
|||
* 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
|
||||
* Frames:: Keeping track of function calls
|
||||
* Coding Style:: Strunk and White for GDB maintainers
|
||||
* Host Conditionals:: Controlling what features exist in the host
|
||||
* Target Conditionals:: Controlling what features exist in the target
|
||||
* Native Conditionals:: Native Conditionals
|
||||
|
||||
@end menu
|
||||
|
||||
|
@ -865,7 +867,7 @@ unfiltered (``@code{printf}'') output. Symbol reading routines that print
|
|||
warnings are a good example.
|
||||
|
||||
|
||||
@node Frames, , Wrapping, Top
|
||||
@node Frames, Coding Style, Wrapping, Top
|
||||
@chapter Frames
|
||||
|
||||
A frame is a construct that GDB uses to keep track of calling and called
|
||||
|
@ -894,7 +896,49 @@ frame. This will be used to create a new GDB frame struct, and then
|
|||
the new frame.
|
||||
@end table
|
||||
|
||||
@node Host Conditionals, , , Top
|
||||
@node Coding Style, Host Conditionals, Frames, Top
|
||||
@chapter Coding Style
|
||||
|
||||
GDB is generally written using the GNU coding standards, as described in
|
||||
@file{standards.texi}, which you can get from the Free Software
|
||||
Foundation. There are some additional considerations for GDB maintainers
|
||||
that reflect the unique environment and style of GDB maintenance.
|
||||
If you follow these guidelines, GDB will be more consistent and easier
|
||||
to maintain.
|
||||
|
||||
GDB's policy on the use of prototypes is that prototypes are used
|
||||
to @emph{declare} functions but never to @emph{define} them. Simple
|
||||
macros are used in the declarations, so that a non-ANSI compiler can
|
||||
compile GDB without trouble. The simple macro calls are used like
|
||||
this:
|
||||
|
||||
@example @code
|
||||
extern int
|
||||
memory_remove_breakpoint PARAMS ((CORE_ADDR, char *));
|
||||
@end example
|
||||
|
||||
Note the double parentheses around the parameter types. This allows
|
||||
an arbitrary number of parameters to be described, without freaking
|
||||
out the C preprocessor. When the function has no parameters, it
|
||||
should be described like:
|
||||
|
||||
@example @code
|
||||
void
|
||||
noprocess PARAMS ((void));
|
||||
@end example
|
||||
|
||||
The @code{PARAMS} macro expands to its argument in ANSI C, or to a simple
|
||||
@code{()} in traditional C.
|
||||
|
||||
All external functions should have a @code{PARAMS} declaration in a
|
||||
header file that callers include. All static functions should have such
|
||||
a declaration near the top of their source file.
|
||||
|
||||
We don't have a gcc option that will properly check that these rules
|
||||
have been followed, but it's GDB policy, and we periodically check it
|
||||
using the tools available (plus manual labor), and clean up any remnants.
|
||||
|
||||
@node Host Conditionals, Target Conditionals, Coding Style, Top
|
||||
@chapter Host Conditionals
|
||||
|
||||
When GDB is configured and compiled, various macros are defined or left
|
||||
|
@ -917,8 +961,6 @@ tm-hppa.h
|
|||
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
|
||||
|
@ -959,8 +1001,6 @@ altos-xdep.c
|
|||
xm-altos.h
|
||||
@item ASCII_COFF
|
||||
remote-adapt.c
|
||||
@item ATTACH_DETACH
|
||||
hppabsd-xdep.c
|
||||
@item BADMAG
|
||||
coffread.c
|
||||
@item BCS
|
||||
|
@ -986,7 +1026,11 @@ tm-68k.h
|
|||
@item BREAKPOINT_DEBUG
|
||||
breakpoint.c
|
||||
@item BROKEN_LARGE_ALLOCA
|
||||
source.c
|
||||
Avoid large @code{alloca}'s. For example, on sun's, Large alloca's fail
|
||||
because the attempt to increase the stack limit in main() fails because
|
||||
shared libraries are allocated just below the initial stack limit. The
|
||||
SunOS kernel will not allow the stack to grow into the area occupied by
|
||||
the shared libraries.
|
||||
@item BSTRING
|
||||
regex.c
|
||||
@item CALL_DUMMY
|
||||
|
@ -1065,12 +1109,6 @@ values.c
|
|||
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
|
||||
|
@ -1115,12 +1153,6 @@ dbxread.c
|
|||
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
|
||||
|
@ -1136,7 +1168,8 @@ partial-stab.h
|
|||
@item HAVE_68881
|
||||
m68k-tdep.c
|
||||
@item HAVE_MMAP
|
||||
state.c
|
||||
In some cases, use the system call @code{mmap} for reading symbol
|
||||
tables. For some machines this allows for sharing and quick updates.
|
||||
@item HAVE_REGISTER_WINDOWS
|
||||
findvar.c
|
||||
@item HAVE_SIGSETMASK
|
||||
|
@ -1238,11 +1271,14 @@ breakpoint.c
|
|||
@item MAINTENANCE_CMDS
|
||||
maint.c
|
||||
@item MALLOC_INCOMPATIBLE
|
||||
defs.h
|
||||
Define this if the system's prototype for @code{malloc} differs from the
|
||||
@sc{ANSI} definition.
|
||||
@item MIPSEL
|
||||
mips-tdep.c
|
||||
@item MMAP_BASE_ADDRESS
|
||||
objfiles.c
|
||||
When using HAVE_MMAP, the first mapping should go at this address.
|
||||
@item MMAP_INCREMENT
|
||||
when using HAVE_MMAP, this is the increment between mappings.
|
||||
@item MONO
|
||||
ser-go32.c
|
||||
@item MOTOROLA
|
||||
|
@ -1355,8 +1391,6 @@ pyr-xdep.c
|
|||
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
|
||||
|
@ -1376,7 +1410,12 @@ state.c
|
|||
@item SEM
|
||||
coffread.c
|
||||
@item SET_STACK_LIMIT_HUGE
|
||||
infrun.c
|
||||
When defined, stack limits will be raised to their maximum. Use this
|
||||
if your host supports @code{setrlimit} and you have trouble with
|
||||
@code{stringtab} in @file{dbxread.c}.
|
||||
|
||||
Also used in @file{fork-child.c} to return stack limits before child
|
||||
processes are forked.
|
||||
@item SHELL_COMMAND_CONCAT
|
||||
infrun.c
|
||||
@item SHELL_FILE
|
||||
|
@ -1459,8 +1498,6 @@ m88k-tdep.c
|
|||
xm-news.h
|
||||
@item USE_O_NOCTTY
|
||||
inflow.c
|
||||
@item USE_PROC_FS
|
||||
inferior.h
|
||||
@item USE_STRUCT_CONVENTION
|
||||
values.c
|
||||
@item USG
|
||||
|
@ -1471,16 +1508,6 @@ Means that System V (prior to SVR4) include files are in use.
|
|||
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
|
||||
|
@ -1511,8 +1538,6 @@ gould-pinsn.c
|
|||
alloca.c
|
||||
@item hp800
|
||||
xm-hppabsd.h
|
||||
@item hp9000s800
|
||||
dbxread.c
|
||||
@item hpux
|
||||
hppabsd-core.c
|
||||
@item lint
|
||||
|
@ -1547,7 +1572,7 @@ coffread.c
|
|||
coffread.c
|
||||
@end table
|
||||
|
||||
@node Target Conditionals, , , Top
|
||||
@node Target Conditionals, Native Conditionals, Host Conditionals, Top
|
||||
@chapter Target Conditionals
|
||||
|
||||
When GDB is configured and compiled, various macros are defined or left
|
||||
|
@ -1570,8 +1595,6 @@ tm-hppa.h
|
|||
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
|
||||
|
@ -1594,8 +1617,6 @@ altos-xdep.c
|
|||
xm-altos.h
|
||||
@item ASCII_COFF
|
||||
remote-adapt.c
|
||||
@item ATTACH_DETACH
|
||||
hppabsd-xdep.c
|
||||
@item BADMAG
|
||||
coffread.c
|
||||
@item BCS
|
||||
|
@ -1620,8 +1641,6 @@ tm-68k.h
|
|||
tm-68k.h
|
||||
@item BREAKPOINT_DEBUG
|
||||
breakpoint.c
|
||||
@item BROKEN_LARGE_ALLOCA
|
||||
source.c
|
||||
@item BSTRING
|
||||
regex.c
|
||||
@item CALL_DUMMY
|
||||
|
@ -1714,6 +1733,8 @@ a68v-xdep.c
|
|||
mach386-xdep.c
|
||||
@item FP_REGNUM
|
||||
parse.c
|
||||
@item FPU
|
||||
Unused? 6-oct-92 rich@cygnus.com. FIXME.
|
||||
@item FRAMELESS_FUNCTION_INVOCATION
|
||||
blockframe.c
|
||||
@item FRAME_ARGS_ADDRESS_CORRECT
|
||||
|
@ -1744,6 +1765,10 @@ dbxread.c
|
|||
symtab.c
|
||||
@item GCC_PRODUCER
|
||||
dwarfread.c
|
||||
@item GDB_TARGET_IS_HPPA
|
||||
This determines whether horrible kludge code in dbxread.c and partial-stab.h
|
||||
is used to mangle multiple-symbol-table files from HPPA's. This should all
|
||||
be ripped out, and a scheme like elfread.c used.
|
||||
@item GDB_TARGET_IS_MACH386
|
||||
mach386-xdep.c
|
||||
@item GDB_TARGET_IS_SUN3
|
||||
|
@ -1764,8 +1789,6 @@ remote-mm.c
|
|||
partial-stab.h
|
||||
@item HAVE_68881
|
||||
m68k-tdep.c
|
||||
@item HAVE_MMAP
|
||||
state.c
|
||||
@item HAVE_REGISTER_WINDOWS
|
||||
findvar.c
|
||||
@item HAVE_SIGSETMASK
|
||||
|
@ -1854,8 +1877,6 @@ breakpoint.c
|
|||
maint.c
|
||||
@item MIPSEL
|
||||
mips-tdep.c
|
||||
@item MMAP_BASE_ADDRESS
|
||||
objfiles.c
|
||||
@item MOTOROLA
|
||||
xm-altos.h
|
||||
@item NAMES_HAVE_UNDERSCORE
|
||||
|
@ -2090,8 +2111,6 @@ gould-pinsn.c
|
|||
alloca.c
|
||||
@item hp800
|
||||
xm-hppabsd.h
|
||||
@item hp9000s800
|
||||
dbxread.c
|
||||
@item hpux
|
||||
hppabsd-core.c
|
||||
@item longest_to_int
|
||||
|
@ -2118,5 +2137,43 @@ coffread.c
|
|||
coffread.c
|
||||
@end table
|
||||
|
||||
@node Native Conditionals, , Target Conditionals, Top
|
||||
@chapter Native Conditionals
|
||||
|
||||
|
||||
|
||||
@item ATTACH_DETACH
|
||||
If defined, then gdb will include support for the @code{attach} and
|
||||
@code{detach} commands.
|
||||
commands.
|
||||
@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} in
|
||||
@file{@var{HOST}-nat.c}.
|
||||
If this symbol is @emph{not} defined, the default routines in
|
||||
@file{infptrace.c} are used for these functions.
|
||||
@item PROC_NAME_FMT
|
||||
Defines the format for the name of a @file{/proc} device. Should be
|
||||
defined in @file{nm.h} @emph{only} in order to override the default
|
||||
definition in @file{procfs.c}.
|
||||
@item REGISTER_U_ADDR
|
||||
Defines the offset of the registers in the ``u area''; @pxref{Host}.
|
||||
@item USE_PROC_FS
|
||||
This determines whether small routines that translate register values
|
||||
to GDB's internal representation (from the /proc representation), and vice
|
||||
verse, are compiled.
|
||||
@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.
|
||||
@end table
|
||||
|
||||
@contents
|
||||
@bye
|
||||
|
|
Loading…
Reference in a new issue