This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RFA: document GDB's overlay support



The weird part about this patch is that it includes a diagram --- the
GDB manual's first.  This makes GDB's manual a lot more sensitive to
the exact versions of the texinfo tools.  This patch adds a new file,
README-IMAGES, which explains exactly what you need.  In the case of
`makeinfo', even the latest release doesn't work; I include a patch
for it.

Now, I could avoid all this hair by including the diagram strictly as
ASCII art; it'll show up that way in the PostScript manual, too.  But
I think it would be really nice to be able to include diagrams in GDB,
and once the infrastructure is there, adding more diagrams is trivial.

So, do we want to bite the bullet?



Warning: this contains a patch, and two uuencoded binary files which
should be unpacked in the gdb/doc directory.

2001-10-09  Jim Blandy  <jimb@redhat.com>

	Document GDB's overlay support.
	* gdb.texinfo (Overlays): New chapter; add to top-level menu.
	(README-IMAGES): New file.
	* overlay-area.dia, overlay-area.eps, overlay-area.png,
	overlay-area.txt: New files: diagram for overlay chapter, in
	several forms.
	* Makefile.in (DIAGRAMS_EPS, DIAGRAMS_PNG, DIAGRAMS_TXT): New
	variables.
	(overlay-area.eps, overlay-area.jpg, overlay-area.txt): New targets.
	(gdb.dvi, gdb.ps, gdb.info, gdb_toc.html): These depend on the
	diagram files, in their various forms.
        * jimb.texinfo-4-image-path.patch: New file.

Index: gdb/doc/Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/doc/Makefile.in,v
retrieving revision 1.15
diff -c -r1.15 Makefile.in
*** gdb/doc/Makefile.in	2001/07/26 07:29:24	1.15
--- gdb/doc/Makefile.in	2001/10/09 16:39:49
***************
*** 107,112 ****
--- 107,137 ----
  SFILES_DOC = $(SFILES_LOCAL) $(GDBMI_DIR)/gdbmi.texinfo \
                  $(READLINE_DIR)/rluser.texinfo $(READLINE_DIR)/inc-hist.texinfo
  
+ # Diagram files.
+ #
+ # To include a diagram in a texinfo document, you need to provide
+ # the diagram in three formats:
+ #   - Encapsulated PostScript (eps), for printing
+ #   - ASCII art (.txt), for the .info file
+ #   - JPEG, for HTML pages
+ 
+ # The diagrams used in gdb.texinfo, in EPS form:
+ DIAGRAMS_EPS = $(srcdir)/overlay-area.eps
+ 
+ # The diagrams used in gdb.texinfo, in PNG form:
+ DIAGRAMS_PNG = $(srcdir)/overlay-area.png
+ 
+ # The diagrams used in gdb.texinfo, as ASCII art:  
+ DIAGRAMS_TXT = $(srcdir)/overlay-area.txt
+ 
+ # We generate some diagrams using `dia'.  We tell `make' that the EPS
+ # and JPEG files depend on the dia file, even though we can't generate
+ # them automatically, so we'll at least get an error message if we
+ # update the dia and forget to re-export it into the other formats.
+ $(srcdir)/overlay-area.eps $(srcdir)/overlay-area.jpg $(srcdir)/overlay-area.txt: $(srcdir)/overlay-area.dia
+ 	@echo "$@ is older than $<; please regenerate it." >&2
+ 	@exit 1
+ 
  #### Host, target, and site specific Makefile fragments come in here.
  ###
  
***************
*** 241,247 ****
  #   in the srcdir is up to date.  (if not, then make should build one here).
  
  # GDB MANUAL: TeX dvi file
! gdb.dvi: ${SFILES_DOC}
  	if [ ! -f ./GDBvn.texi ]; then \
  		(test "$$LN_S" = "ln -s" && ln -s $(srcdir)/GDBvn.texi .) || \
  		ln $(srcdir)/GDBvn.texi . || \
--- 266,272 ----
  #   in the srcdir is up to date.  (if not, then make should build one here).
  
  # GDB MANUAL: TeX dvi file
! gdb.dvi: ${SFILES_DOC} ${DIAGRAMS_EPS}
  	if [ ! -f ./GDBvn.texi ]; then \
  		(test "$$LN_S" = "ln -s" && ln -s $(srcdir)/GDBvn.texi .) || \
  		ln $(srcdir)/GDBvn.texi . || \
***************
*** 253,260 ****
  	rm -f gdb.aux gdb.cp* gdb.fn* gdb.ky* gdb.log gdb.pg* gdb.toc \
  		gdb.tp* gdb.vr*
  
! gdb.ps: gdb.dvi
! 	$(DVIPS) -o $@ $?
  
  gdb.pdf: ${SFILES_DOC}
  	if [ ! -f ./GDBvn.texi ]; then \
--- 278,285 ----
  	rm -f gdb.aux gdb.cp* gdb.fn* gdb.ky* gdb.log gdb.pg* gdb.toc \
  		gdb.tp* gdb.vr*
  
! gdb.ps: gdb.dvi ${DIAGRAMS_EPS}
! 	$(SET_TEXINPUTS) $(DVIPS) -o $@ $<
  
  gdb.pdf: ${SFILES_DOC}
  	if [ ! -f ./GDBvn.texi ]; then \
***************
*** 271,277 ****
  # GDB MANUAL: info file
  # We're using texinfo 3.12; older makeinfo's may not be able to
  # cope with all the markup.  
! gdb.info: ${SFILES_DOC}
  	$(MAKEINFO) -I ${READLINE_DIR} -I ${GDBMI_DIR} -I $(srcdir) -o ./gdb.info gdb.texinfo
  
  # GDB MANUAL: roff translations
--- 296,302 ----
  # GDB MANUAL: info file
  # We're using texinfo 3.12; older makeinfo's may not be able to
  # cope with all the markup.  
! gdb.info: ${SFILES_DOC} ${DIAGRAMS_TXT}
  	$(MAKEINFO) -I ${READLINE_DIR} -I ${GDBMI_DIR} -I $(srcdir) -o ./gdb.info gdb.texinfo
  
  # GDB MANUAL: roff translations
***************
*** 367,373 ****
  
  # GDB MANUAL: HTML file
  
! gdb_toc.html: ${SFILES_DOC}
  	$(MAKEHTML) $(MAKEHTMLFLAGS) -I ${READLINE_DIR} -I ${GDBMI_DIR} -I $(srcdir) $(srcdir)/gdb.texinfo
  
  # GDB INTERNALS MANUAL: TeX dvi file
--- 392,398 ----
  
  # GDB MANUAL: HTML file
  
! gdb_toc.html: ${SFILES_DOC} ${DIAGRAMS_PNG}
  	$(MAKEHTML) $(MAKEHTMLFLAGS) -I ${READLINE_DIR} -I ${GDBMI_DIR} -I $(srcdir) $(srcdir)/gdb.texinfo
  
  # GDB INTERNALS MANUAL: TeX dvi file
Index: gdb/doc/README-IMAGES
===================================================================
RCS file: README-IMAGES
diff -N README-IMAGES
*** gdb/doc/README-IMAGES	Tue May  5 13:32:27 1998
--- gdb/doc/README-IMAGES	Tue Oct  9 09:39:49 2001
***************
*** 0 ****
--- 1,93 ----
+ Some hints on working with the images in gdb.texinfo:
+ 
+ Texinfo's @image directive requires you to provide your images in
+ three different formats:
+ - Encapsulated PostScript (.eps), for use in PostScript files,
+ - Portable Network Graphics (.png), for use in HTML output, and
+ - ASCII art (.txt), for use in Info files.
+ 
+ 
+ Which Versions of the Texinfo Formatters You'll Need
+ ====================================================
+ 
+ It depends on the form you're trying to render the documentation into:
+ 
+ PostScript:     The texi2dvi distributed with texinfo 3.12 seems to
+                 handle images just fine.
+ 
+ Info:           The `makeinfo' distributed with Texinfo 4.0 and
+                 earlier doesn't search for @image files the way it
+                 does for @include files.  If you are building in a
+                 separate directory tree from the sources, you'll need
+                 to apply jimb.texinfo-4-image-path.patch (in this
+                 directory) to a texinfo source tree.  This patch seems
+                 to apply cleanly to texinfo 3.12, too.
+ 
+ HTML:           texi2html 1.64 seems to work.
+ 
+ 
+ How To Edit Images
+ ==================
+ 
+ We drew the documents using the Dia drawing program:
+ 
+     http://www.lysator.liu.se/~alla/dia/
+ 
+ Dia saves its drawings as `.dia' files.  Dia can export diagrams
+ directly as Encapsulated PostScript and PNG format, so each time you
+ change a .dia file, you'll need to re-generate the corresponding .eps
+ and .png files using Dia's "File => Export" command.
+ 
+ Dia is part of Gnome Office; it's probably included in Linux
+ distributions made since mid-2001.
+ 
+ Obviously, the ASCII art (.txt) versions of the diagrams need to be
+ maintained by hand.
+ 
+ 
+ Getting the image size right
+ ============================
+ 
+ Getting Dia 0.88.1 to produce decent PNG files is kind of tricky.  Dia
+ insists on rendering the documents at twenty pixels per centimeter;
+ that's almost like using a 600x400 frame buffer on a 20" viewable
+ monitor.  That 20 pixels/cm ratio is hard-coded into the program.  To
+ make it work, you'd need to use pretty big fonts.
+ 
+ To keep my sanity, I declare the rulers Dia displays to be reality,
+ and try to draw the diagrams to fit properly on a letter-sized page.
+ With a 2.54cm margins on the right and left, that's 16.5cm for a
+ full-width diagram.
+ 
+ For display, the Zoom box at the bottom of the window controls the
+ mapping from ruler units to pixels in your window.  Dia assumes the
+ screen is 20 pixel/cm, too, so a Zoom of 100% is illegible; I work at
+ 170%.  Don't forget to hit return after choosing a new Zoom factor,
+ even from the drop-down menu.
+ 
+ For PNG export, if you choose "File => Page Setup" from the menus, the
+ dialog that pops up has a "Scale" box containing a percentage.  This
+ controls how Dia maps ruler coordinates to paper coordinates.  The PNG
+ export process respects this setting, again assuming a 20 pixel/cm
+ resolution.  If you set your "Scale" to the same value you used for
+ your window's "Zoom", then your PNG file will look like what you have
+ on the screen.  Don't forget to press "Apply" or "Okay" after changing
+ your "Scale" value.
+ 
+ Unfortunately, the EPS export process respects Page Setup's Scale,
+ too.  So in order to get past the stupid 20 pixel/cm thing to produce
+ a decent PNG file, you have to set Scale to something that makes your
+ EPS diagrams huge.  Fortunately, you can specify the horizontal size
+ you want as the second argument to the @image command, and Texinfo and
+ dvips will scale everything appropriately.  So you don't have to worry
+ much about it.
+ 
+ Clearly, the knobs we've been given are not really the knobs we
+ wanted...
+ 
+ 
+ ASCII art drawings
+ ==================
+ 
+ I use Emacs's Picture Mode to maintain these diagrams.  Obviously,
+ whatever technique you want to use is probably fine.
Index: gdb/doc/gdb.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.51
diff -c -r1.51 gdb.texinfo
*** gdb/doc/gdb.texinfo	2001/09/12 19:49:52	1.51
--- gdb/doc/gdb.texinfo	2001/10/09 16:40:00
***************
*** 127,132 ****
--- 127,133 ----
  * Source::                      Examining source files
  * Data::                        Examining data
  * Tracepoints::                 Debugging remote targets non-intrusively
+ * Overlays::                    Debugging programs that use overlays
  
  * Languages::                   Using @value{GDBN} with different languages
  
***************
*** 179,184 ****
--- 180,186 ----
  * Source::                      Examining source files
  * Data::                        Examining data
  * Tracepoints::                 Debugging remote targets non-intrusively
+ * Overlays::                    Debugging programs that use overlays
  
  * Languages::                   Using @value{GDBN} with different languages
  
***************
*** 6279,6284 ****
--- 6281,6643 ----
  > tfind
  > end
  @end smallexample
+ 
+ @node Overlays
+ @chapter Debugging Programs That Use Overlays
+ @cindex overlays
+ 
+ If your program is too large to fit completely in your target system's
+ memory, you can sometimes use @dfn{overlays} to work around this
+ problem.  @value{GDBN} provides some support for debugging programs that
+ use overlays.
+ 
+ @menu
+ * How Overlays Work::              A general explanation of overlays.
+ * Overlay Commands::               Managing overlays in GDB.
+ * Automatic Overlay Debugging::    GDB can find out which overlays are
+                                    mapped by asking the inferior.
+ * Overlay Sample Program::         A sample program using overlays.
+ @end menu
+ 
+ @node How Overlays Work
+ @section How Overlays Work
+ @cindex mapped overlays
+ @cindex unmapped overlays
+ @cindex load address, overlay's
+ @cindex mapped address
+ @cindex overlay area
+ 
+ Suppose you have a computer whose instruction address space is only 64
+ kilobytes long, but which has much more memory which can be accessed by
+ other means: special instructions, segment registers, or memory
+ management hardware, for example.  Suppose further that you want to
+ adapt a program which is larger than 64 kilobytes to run on this system.
+ 
+ One solution is to identify modules of your program which are relatively
+ independent, and need not call each other directly; call these modules
+ @dfn{overlays}.  Separate the overlays from the main program, and place
+ their machine code in the larger memory.  Place your main program in
+ instruction memory, but leave at least enough space there to hold the
+ largest overlay as well.
+ 
+ Now, to call a function located in an overlay, you must first copy that
+ overlay's machine code from the large memory into the space set aside
+ for it in the instruction memory, and then jump to its entry point
+ there.
+ 
+ @c There's a bug in texi2html 1.64 that causes it to treat the width as
+ @c part of the filename.
+ @ifset texi2html
+ @image{overlay-area}
+ @end ifset
+ @ifclear texi2html 
+ @image{overlay-area,5in}
+ @end ifclear
+ 
+ This diagram shows a system with separate data and instruction address
+ spaces.  For a system with a single address space for data and
+ instructions, the diagram would be similar, except that the program
+ variables and heap would share an address space with the main program
+ and the overlay area.
+ 
+ An overlay loaded into instruction memory and ready for use is called a
+ @dfn{mapped} overlay; its @dfn{mapped address} is its address in the
+ instruction memory.  An overlay not present (or only partially present)
+ in instruction memory is called @dfn{unmapped}; its @dfn{load address}
+ is its address in the larger memory.  The mapped address is also called
+ the @dfn{virtual memory address}, or @dfn{VMA}; the load address is also
+ called the @dfn{load memory address}, or @dfn{LMA}.
+ 
+ Unfortunately, overlays are not a completely transparent way to adapt a
+ program to limited instruction memory.  They introduce a new set of
+ global constraints you must keep in mind as you design your program:
+ 
+ @itemize @bullet
+ 
+ @item
+ Before calling or returning to a function in an overlay, your program
+ must make sure that overlay is actually mapped.  Otherwise, the call or
+ return will transfer control to the right address, but in the wrong
+ overlay, and your program will probably crash.
+ 
+ @item
+ If the process of mapping an overlay is expensive on your system, you
+ will need to choose your overlays carefully to minimize their effect on
+ your program's performance.
+ 
+ @item
+ The executable file you load onto your system must contain each
+ overlay's instructions, appearing at the overlay's load address, not its
+ mapped address.  However, each overlay's instructions must be relocated
+ as if the overlay were at its mapped address.  You can specify different
+ load and relocation addresses for pieces of your program using GNU
+ linker scripts; see @ref{Overlay Description,,, ld.info, Using ld: the
+ GNU linker}.
+ 
+ @item
+ The procedure for loading executable files onto your system must be able
+ to load its contents into the larger address space as well as the
+ instruction and data spaces.
+ 
+ @end itemize
+ 
+ The overlay system described above is rather simple, and could be
+ improved in many ways:
+ 
+ @itemize @bullet
+ 
+ @item
+ Depending on the facilities available on your system, you could use bank
+ switch registers or other memory management hardware to map overlays;
+ this would probably be faster than copying the overlay into instruction
+ memory, one word at a time.
+ 
+ @item
+ If your overlays are small enough, you could set aside more than one
+ overlay area, and have more than one overlay mapped at a time.
+ 
+ @item
+ Normally, the linker relocates machine code to run correctly at only one
+ address, so you must choose each overlay's mapped address at link time.
+ However, if your toolchain can generate position-independent code, then
+ you may be able to construct an overlay system that can load overlays of
+ position-independent code at any address.  This would reduce contention
+ for the overlay areas, and thus reduce the overlay system's effect on
+ your program's performance.
+ 
+ @item
+ You can use overlays to manage data, as well as instructions.  In
+ general, data overlays are even less transparent to your design than
+ code overlays: whereas code overlays only require care when you call or
+ return to functions, data overlays require care every time you access
+ the data.  Also, if you change the contents of a data overlay, you
+ must copy its contents back out to its load address before you can copy a
+ different data overlay into the same mapped area.
+ 
+ @end itemize
+ 
+ 
+ @node Overlay Commands
+ @section Overlay Commands
+ 
+ To use GDB's overlay support, each overlay in your program must
+ correspond to a separate section of the executable file.  The section's
+ virtual memory address and load memory address must be the overlay's
+ mapped and load addresses.  Identifying overlays with sections allows
+ GDB to determine the appropriate address of a function or variable,
+ depending on whether the overlay is mapped or not.
+ 
+ GDB's overlay commands all start with the word @code{overlay}; you can
+ abbreviate this as @code{ov} or @code{ovly}.  The commands are:
+ 
+ @table @code
+ @item overlay off
+ @kindex overlay off
+ Disable GDB's overlay support.  When overlay support is disabled, GDB
+ assumes that all functions and variables are always present at their
+ mapped addresses.  By default, GDB's overlay support is disabled.
+ 
+ @item overlay manual
+ @kindex overlay manual
+ @cindex manual overlay debugging
+ Enable @dfn{manual} overlay debugging.  In this mode, GDB relies on you
+ to tell it which overlays are mapped, and which are not, using the
+ @code{overlay map-overlay} and @code{overlay unmap-overlay} commands
+ described below.
+ 
+ @item overlay map-overlay @var{overlay}
+ @itemx overlay map @var{overlay}
+ @kindex overlay map-overlay
+ @cindex map an overlay
+ Tell GDB that @var{overlay} is now mapped; @var{overlay} must be the
+ name of the object file section containing the overlay.  When an overlay
+ is mapped, GDB assumes it can find the overlay's functions and variables
+ at their mapped addresses.  GDB assumes that any other overlays whose
+ mapped ranges overlap that of @var{overlay} are now unmapped.
+ 
+ @item overlay unmap-overlay @var{overlay}
+ @itemx overlay unmap @var{overlay}
+ @kindex overlay unmap-overlay
+ @cindex unmap an overlay
+ Tell GDB that @var{overlay} is no longer mapped, where @var{overlay} is
+ the name of the object file section containing the overlay.  When an
+ overlay is unmapped, GDB assumes it can find the overlay's functions and
+ variables at their load addresses.
+ 
+ @item overlay auto
+ @kindex overlay auto
+ Enable @dfn{automatic} overlay debugging.  In this mode, GDB consults a
+ data structure the overlay manager maintains in the inferior to see
+ which overlays are mapped.  For details, see @ref{Automatic Overlay
+ Debugging}.
+ 
+ @item overlay load-target
+ @itemx overlay load
+ @kindex overlay load-target
+ @cindex reloading the overlay table
+ Re-read the overlay table from the inferior.  Normally, GDB re-reads the
+ table GDB automatically each time the inferior stops, so this command
+ should only be necessary if you have changed the overlay mapping
+ yourself using GDB.  This command is only useful when using automatic
+ overlay debugging.
+ 
+ @item overlay list-overlays
+ @itemx overlay list
+ @cindex listing mapped overlays
+ Display a list of the overlays currently mapped, along with their mapped
+ addresses, load addresses, and sizes.
+ 
+ @end table
+ 
+ When GDB prints a code address, it includes the name of the function the
+ address falls in:
+ 
+ @example
+ (gdb) print main
+ $3 = @{int ()@} 0x11a0 <main>
+ @end example
+ @noindent
+ When overlay debugging is enabled, GDB recognizes code in unmapped
+ overlays, and prints the names of unmapped functions with asterisks
+ around them.  For example, if @code{foo} is a function in an unmapped
+ overlay, GDB prints it this way:
+ 
+ @example
+ (gdb) overlay list
+ No sections are mapped.
+ (gdb) print foo
+ $5 = @{int (int)@} 0x100000 <*foo*>
+ @end example
+ @noindent
+ When @code{foo}'s overlay is mapped, GDB prints the function's name
+ normally:
+ 
+ @example
+ (gdb) overlay list
+ Section .ov.foo.text, loaded at 0x100000 - 0x100034, 
+         mapped at 0x1016 - 0x104a
+ (gdb) print foo
+ $6 = @{int (int)@} 0x1016 <foo>
+ @end example
+ 
+ Since GDB can find the correct address for a function in an overlay,
+ whether the overlay is mapped or not, most GDB commands, like
+ @code{break} or @code{disassemble}, will work normally, even on unmapped
+ code.  GDB's breakpoint support has some limitations:
+ 
+ @itemize @bullet
+ @item
+ You can set breakpoints in functions in unmapped overlays, as long as
+ GDB can write to the overlay at its load address.
+ @item
+ GDB can not set hardware or simulator-based breakpoints in unmapped
+ overlays.  However, if you set a breakpoint at the end of your overlay
+ manager (and tell GDB which overlays are now mapped, if you are using
+ manual overlay management), GDB will re-set its breakpoints properly.
+ @end itemize
+ 
+ 
+ @node Automatic Overlay Debugging
+ @section Automatic Overlay Debugging
+ @cindex automatic overlay debugging
+ 
+ GDB can automatically track which overlays are mapped and which are not,
+ given some simple co-operation from the overlay manager in the inferior.
+ If you enable automatic overlay debugging with the @code{overlay auto}
+ command (@pxref{Overlay Commands}), GDB looks in the inferior's memory
+ for certain variables describing the current state of the overlays.
+ 
+ Here are the variables your overlay manager must define to support GDB's
+ automatic overlay debugging:
+ 
+ @table @code
+ 
+ @item _ovly_table
+ This variable must be an array of the following structures:
+ 
+ @example
+ struct
+ @{
+   /* The overlay's mapped address.  */
+   unsigned long vma;
+ 
+   /* The size of the overlay, in bytes.  */
+   unsigned long size;
+ 
+   /* The overlay's load address.  */
+   unsigned long lma;
+ 
+   /* Non-zero if the overlay is currently mapped;
+      zero otherwise.  */
+   unsigned long mapped;
+ @}
+ @end example
+ 
+ @item _novlys
+ This variable must be a four-byte signed integer, holding the total
+ number of elements in @code{_ovly_table}.
+ 
+ @end table
+ 
+ To decide whether a particular overlay is mapped or not, GDB looks for
+ an entry in @code{_ovly_table} whose @code{vma} and @code{lma} members
+ equal the VMA and LMA of the overlay's section in the executable file.
+ When it finds a matching entry, it consults the entry's @code{mapped}
+ member to determine whether the overlay is currently mapped.
+ 
+ 
+ @node Overlay Sample Program
+ @section Overlay Sample Program
+ @cindex overlay sample program
+ @cindex overlay example program
+ 
+ When linking a program which uses overlays, you must place the overlays
+ at their load addresses, while relocating them to run at their mapped
+ addresses.  To do this, you must write a linker script (@pxref{Overlay
+ Description,,, ld.info, Using ld: the GNU linker}).  Unfortunately,
+ since linker scripts are specific to a particular host system, target
+ architecture, and target memory layout, this manual cannot provide
+ portable sample code demonstrating GDB's overlay support.
+ 
+ However, the GDB source distribution does contain an overlaid program,
+ with linker scripts for a few systems, as part of its test suite.  The
+ program consists of the following files from
+ @file{gdb/testsuite/gdb.base}:
+ 
+ @table @file
+ @item overlays.c
+ The main program file.
+ @item ovlymgr.c
+ A simple overlay manager, used by overlays.c.
+ @item foo.c
+ @itemx bar.c
+ @itemx baz.c
+ @itemx grbx.c
+ Overlay modules, loaded and used by the main program.
+ @item d10v.ld
+ @itemx m32r.ld
+ Linker scripts for linking the test program on the @code{d10v-elf}
+ and @code{m32r-elf} targets.
+ @end table
+ 
+ You can build the test program using the @code{d10v-elf} GCC
+ cross-compiler like this:
+ 
+ @example
+ $ d10v-elf-gcc -g -c overlays.c
+ $ d10v-elf-gcc -g -c ovlymgr.c
+ $ d10v-elf-gcc -g -c foo.c
+ $ d10v-elf-gcc -g -c bar.c
+ $ d10v-elf-gcc -g -c baz.c
+ $ d10v-elf-gcc -g -c grbx.c
+ $ d10v-elf-gcc -g overlays.o ovlymgr.o foo.o bar.o \
+                   baz.o grbx.o -Wl,-Td10v.ld -o overlays
+ @end example
+ 
+ The build process is identical for any other architecture, except that
+ you must substitute @code{d10v-elf-gcc} and @code{d10v.ld} with the
+ appropriate compiler and linker script for the target system.
+ 
  
  @node Languages
  @chapter Using @value{GDBN} with Different Languages
Index: gdb/doc/jimb.texinfo-4-image-path.patch
===================================================================
RCS file: jimb.texinfo-4-image-path.patch
diff -N jimb.texinfo-4-image-path.patch
*** gdb/doc/jimb.texinfo-4-image-path.patch	Tue May  5 13:32:27 1998
--- gdb/doc/jimb.texinfo-4-image-path.patch	Tue Oct  9 09:40:01 2001
***************
*** 0 ****
--- 1,365 ----
+ 2001-09-26  Jim Blandy  <jimb@redhat.com>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): Search for image files in
+ 	include_files_path.  Use get_file_info_in_path to find the files.
+ 	Treat a missing .txt file as a real error, not just a warning, as
+ 	we do missing .jpg or .png files.
+ 	* makeinfo/files.c (get_file_info_with_extensions): New function.
+ 	(get_file_info_in_path): Add new argument, EXTENSIONS; implement
+ 	in terms of get_file_info_with_extensions.
+ 	(find_and_load): Add EXTENSIONS argument to call to
+ 	get_file_info_in_path; a value of "" preserves its old behavior.
+ 	* makefilo/files.h (get_file_info_in_path): Add external
+ 	declaration.
+ 	* doc/texinfo.txi: Document the searching behavior.
+ 
+ *** makeinfo/makeinfo.c.~1~	Sun Sep 19 10:24:44 1999
+ --- makeinfo/makeinfo.c	Wed Sep 26 10:49:48 2001
+ ***************
+ *** 3013,3070 ****
+   
+     if (*name_arg)
+       {
+ !       char *fullname = xmalloc (strlen (name_arg) + 4 + 1);
+   
+         if (html)
+           { /* fixxme It would be nice to insert more useful alt text.  */
+ !           sprintf (fullname, "%s.png", name_arg);
+ !           if (access (fullname, R_OK) != 0)
+               {
+ !               sprintf (fullname, "%s.jpg", name_arg);
+ !               if (access (fullname, R_OK) != 0)
+ !                 {
+ !                   line_error (_("No .png or .jpg for `%s'"), name_arg);
+ !                   return;
+ !                 }
+ !           }
+   
+ !           add_word_args ("<img src=\"%s\" alt=\"%s\">", fullname, fullname);
+           }
+         else
+           { /* Try to open foo.txt.  */
+             FILE *image_file;
+ -           strcpy (fullname, name_arg);
+ -           strcat (fullname, ".txt");
+ -           image_file = fopen (fullname, "r");
+ -           if (image_file)
+ -             {
+ -               int ch;
+ -               int save_inhibit_indentation = inhibit_paragraph_indentation;
+ -               int save_filling_enabled = filling_enabled;
+ - 
+ -               inhibit_paragraph_indentation = 1;
+ -               filling_enabled = 0;
+ -               last_char_was_newline = 0;
+ - 
+ -               /* Maybe we need to remove the final newline if the image
+ -                  file is only one line to allow in-line images.  On the
+ -                  other hand, they could just make the file without a
+ -                  final newline.  */
+ -               while ((ch = getc (image_file)) != EOF)
+ -                 add_char (ch);
+   
+ !               inhibit_paragraph_indentation = save_inhibit_indentation;
+ !               filling_enabled = save_filling_enabled;
+   
+ !               if (fclose (image_file) != 0)
+ !                 perror (fullname);
+               }
+ !           else
+ !             warning (_("@image file `%s' unreadable: %s"), fullname,
+ !                        strerror (errno));
+           }
+   
+ !       free (fullname);
+       }
+     else
+       line_error (_("@image missing filename argument"));
+ --- 3013,3100 ----
+   
+     if (*name_arg)
+       {
+ !       char *fullpath;
+ !       struct stat fileinfo;
+   
+         if (html)
+           { /* fixxme It would be nice to insert more useful alt text.  */
+ !           fullpath = get_file_info_in_path (name_arg, include_files_path,
+ !                                             ".png:.jpg", &fileinfo);
+ !           if (! fullpath)
+               {
+ !               line_error (_("Couldn't find `.png' or `.jpg' file for `%s'"),
+ !                           name_arg);
+ !               free (fullpath);
+ !               free (name_arg);
+ !               return;
+ !             }
+   
+ !           {
+ !             /* Use only the last component of the filename as
+ !                the image source; omit the directory path.  It's
+ !                the user's responsibility to install the image
+ !                file along with the HTML.  */
+ !             char *tail = strrchr (fullpath, '/');
+ !             if (tail)
+ !               tail++;
+ !             else
+ !               tail = fullpath;
+ !             add_word_args ("<img src=\"%s\" alt=\"%s\">",
+ !                            tail, tail);
+ !           }
+           }
+         else
+           { /* Try to open foo.txt.  */
+             FILE *image_file;
+   
+ !           /* Find the file in the @include path.  */
+ !           fullpath = get_file_info_in_path (name_arg, include_files_path,
+ !                                             ".txt", &fileinfo);
+ !           if (! fullpath)
+ !             {
+ !               line_error (_("Couldn't find `.txt' file for `%s'"),
+ !                           name_arg);
+ !               free (name_arg);
+ !               return;
+ !             }
+   
+ !           /* Try to open the file we found.  */
+ !           image_file = fopen (fullpath, "r");
+ !           if (! image_file)
+ !             {
+ !               line_error (_("Couldn't open text image file `%s': %s"),
+ !                           fullpath, strerror (errno));
+ !               free (fullpath);
+ !               free (name_arg);
+ !               return;
+               }
+ ! 
+ !           /* Copy the contents of the image file into the .info file.  */
+ !           {
+ !             int ch;
+ !             int save_inhibit_indentation = inhibit_paragraph_indentation;
+ !             int save_filling_enabled = filling_enabled;
+ ! 
+ !             inhibit_paragraph_indentation = 1;
+ !             filling_enabled = 0;
+ !             last_char_was_newline = 0;
+ ! 
+ !             /* Maybe we need to remove the final newline if the image
+ !                file is only one line to allow in-line images.  On the
+ !                other hand, they could just make the file without a
+ !                final newline.  */
+ !             while ((ch = getc (image_file)) != EOF)
+ !               add_char (ch);
+ ! 
+ !             inhibit_paragraph_indentation = save_inhibit_indentation;
+ !             filling_enabled = save_filling_enabled;
+ !           }
+ !           
+ !           if (fclose (image_file) != 0)
+ !             perror (fullpath);
+           }
+   
+ !       free (fullpath);
+       }
+     else
+       line_error (_("@image missing filename argument"));
+ *** makeinfo/files.h.~1~	Sat Oct 24 16:37:26 1998
+ --- makeinfo/files.h	Wed Sep 26 07:02:36 2001
+ ***************
+ *** 41,45 ****
+ --- 41,46 ----
+   extern char *expand_filename ();
+   extern char *filename_part ();
+   extern char *pathname_part ();
+ + extern char *get_file_info_in_path ();
+   
+   #endif /* !FILES_H */
+ *** makeinfo/files.c.~1~	Tue Mar 23 16:42:44 1999
+ --- makeinfo/files.c	Wed Sep 26 08:09:40 2001
+ ***************
+ *** 78,90 ****
+       }
+   }
+   
+   /* Return the full pathname for FILENAME by searching along PATH.
+      When found, return the stat () info for FILENAME in FINFO.
+      If PATH is NULL, only the current directory is searched.
+      If the file could not be found, return a NULL pointer. */
+ ! static char *
+ ! get_file_info_in_path (filename, path, finfo)
+ !      char *filename, *path;
+        struct stat *finfo;
+   {
+     char *dir;
+ --- 78,147 ----
+       }
+   }
+   
+ + 
+ + /* If FILENAME exists with any of the extensions in EXTENSIONS, return
+ +    the extended filename, and fill in FINFO with that file's info.
+ +    EXTENSIONS is a colon-separated list of filename extensions, including the
+ +    leading `.' character.  If EXTENSIONS is "", that's treated as a list
+ +    containing a single extension: the empty string.
+ +    The returned filename is always freshly allocated with xmalloc; the
+ +    caller is responsible for freeing it.
+ +    If we can't find the file under any of the extensions given, return
+ +    a NULL pointer.  */
+ + static char *
+ + get_file_info_with_extensions (filename, extensions, finfo)
+ +      char *filename, *extensions;
+ +      struct stat *finfo;
+ + {
+ +   int filename_len = strlen (filename);
+ + 
+ +   /* The start of the next extensions in `extensions' we're going to
+ +      try.  */
+ +   char *ext_start = extensions;
+ + 
+ +   do
+ +     {
+ +       int ext_len;
+ +       char *extended;
+ + 
+ +       /* Find the length of the next extension.  */
+ +       for (ext_len = 0;
+ +            (   ext_start[ext_len] != '\0'
+ +             && ext_start[ext_len] != ':');
+ +            ext_len++)
+ +         ;
+ + 
+ +       extended = xmalloc (filename_len + ext_len + 1);
+ +       strcpy (extended, filename);
+ +       memcpy (extended + filename_len, ext_start, ext_len);
+ +       extended[filename_len + ext_len] = '\0';
+ + 
+ +       if (stat (extended, finfo) == 0)
+ +         return extended;
+ + 
+ +       free (extended);
+ +       ext_start += ext_len;
+ +       if (*ext_start == ':')
+ +         ext_start++;
+ +     }
+ +   while (*ext_start != '\0');
+ + 
+ +   return 0;
+ + }
+ + 
+ + 
+   /* Return the full pathname for FILENAME by searching along PATH.
+      When found, return the stat () info for FILENAME in FINFO.
+      If PATH is NULL, only the current directory is searched.
+ +    EXTENSIONS is a colon-separated list of filename extensions, including the
+ +    leading `.' character.  If EXTENSIONS is "", that's treated as a list
+ +    containing a single extension: the empty string.  We look for
+ +    FILENAME with each of the extensions before going on to the next
+ +    directory in PATH.
+      If the file could not be found, return a NULL pointer. */
+ ! char *
+ ! get_file_info_in_path (filename, path, extensions, finfo)
+ !      char *filename, *path, *extensions;
+        struct stat *finfo;
+   {
+     char *dir;
+ ***************
+ *** 98,113 ****
+         || (*filename == '.'
+             && (IS_SLASH (filename[1])
+                 || (filename[1] == '.' && IS_SLASH (filename[2])))))
+ !     {
+ !       if (stat (filename, finfo) == 0)
+ !         return xstrdup (filename);
+ !       else
+ !         return NULL;
+ !     }
+ ! 
+     while ((dir = extract_colon_unit (path, &index)))
+       {
+         char *fullpath;
+   
+         if (!*dir)
+           {
+ --- 155,166 ----
+         || (*filename == '.'
+             && (IS_SLASH (filename[1])
+                 || (filename[1] == '.' && IS_SLASH (filename[2])))))
+ !     return get_file_info_with_extensions (filename, extensions, finfo);
+ !   
+     while ((dir = extract_colon_unit (path, &index)))
+       {
+         char *fullpath;
+ +       char *extended_fullpath;
+   
+         if (!*dir)
+           {
+ ***************
+ *** 118,133 ****
+         fullpath = xmalloc (2 + strlen (dir) + strlen (filename));
+         sprintf (fullpath, "%s/%s", dir, filename);
+         free (dir);
+ ! 
+ !       result = stat (fullpath, finfo);
+ ! 
+ !       if (result == 0)
+ !         return fullpath;
+ !       else
+ !         free (fullpath);
+       }
+     return NULL;
+   }
+   
+   /* Find and load the file named FILENAME.  Return a pointer to
+      the loaded file, or NULL if it can't be loaded. */
+ --- 171,186 ----
+         fullpath = xmalloc (2 + strlen (dir) + strlen (filename));
+         sprintf (fullpath, "%s/%s", dir, filename);
+         free (dir);
+ !       extended_fullpath = get_file_info_with_extensions (fullpath, extensions,
+ !                                                          finfo);
+ !       free (fullpath);
+ !       if (extended_fullpath)
+ !         return extended_fullpath;
+       }
+     return NULL;
+   }
+ + 
+ + 
+   
+   /* Find and load the file named FILENAME.  Return a pointer to
+      the loaded file, or NULL if it can't be loaded. */
+ ***************
+ *** 145,151 ****
+   
+     result = fullpath = NULL;
+   
+ !   fullpath = get_file_info_in_path (filename, include_files_path, &fileinfo);
+   
+     if (!fullpath)
+       goto error_exit;
+ --- 198,205 ----
+   
+     result = fullpath = NULL;
+   
+ !   fullpath = get_file_info_in_path (filename, include_files_path, "", 
+ !                                     &fileinfo);
+   
+     if (!fullpath)
+       goto error_exit;
+ *** doc/texinfo.txi.~1~	Tue Sep 28 14:38:01 1999
+ --- doc/texinfo.txi	Wed Sep 26 12:01:16 2001
+ ***************
+ *** 9977,9982 ****
+ --- 9977,9987 ----
+   to patents.)
+   @end itemize
+   
+ + These programs search for the image file in the same directories the
+ + @code{@@include} command would: @TeX{} searches the directories named in
+ + the @env{TEXINPUTS} environment variable; @code{makeinfo} searches the
+ + directories specified by the @code{-I} command-line switches; and so on.
+ + 
+   @cindex Width of images
+   @cindex Height of images
+   @cindex Aspect ratio of images
Index: gdb/doc/overlay-area.eps
===================================================================
RCS file: overlay-area.eps
diff -N overlay-area.eps
*** /dev/null	Tue May  5 13:32:27 1998
--- gdb/doc/overlay-area.eps	Tue Oct  9 09:40:01 2001
***************
*** 0 ****
--- 1,521 ----
+ %!PS-Adobe-2.0 EPSF-2.0
+ %%Title: /umbra/jimb/cygnus/src/sourceware/gdb/main/src/gdb/doc/overlay-area.dia
+ %%Creator: Dia v0.88.1
+ %%CreationDate: Thu Sep 20 15:25:38 2001
+ %%For: jimb
+ %%Magnification: 1.0000
+ %%Orientation: Portrait
+ %%BoundingBox: 0 0 888 527
+ %%Pages: 1
+ %%BeginSetup
+ %%EndSetup
+ %%EndComments
+ %%BeginProlog
+ [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
+ /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+ /two /three /four /five /six /seven /eight /nine /colon /semicolon
+ /less /equal /greater /question /at /A /B /C /D /E
+ /F /G /H /I /J /K /L /M /N /O
+ /P /Q /R /S /T /U /V /W /X /Y
+ /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
+ /d /e /f /g /h /i /j /k /l /m
+ /n /o /p /q /r /s /t /u /v /w
+ /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
+ /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
+ /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
+ /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+ /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
+ /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
+ /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
+ /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+ /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+ /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
+ /Times-Roman-latin1
+     /Times-Roman findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Times-Italic-latin1
+     /Times-Italic findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Times-Bold-latin1
+     /Times-Bold findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Times-BoldItalic-latin1
+     /Times-BoldItalic findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /AvantGarde-Book-latin1
+     /AvantGarde-Book findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /AvantGarde-BookOblique-latin1
+     /AvantGarde-BookOblique findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /AvantGarde-Demi-latin1
+     /AvantGarde-Demi findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /AvantGarde-DemiOblique-latin1
+     /AvantGarde-DemiOblique findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Bookman-Light-latin1
+     /Bookman-Light findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Bookman-LightItalic-latin1
+     /Bookman-LightItalic findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Bookman-Demi-latin1
+     /Bookman-Demi findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Bookman-DemiItalic-latin1
+     /Bookman-DemiItalic findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Courier-latin1
+     /Courier findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Courier-Oblique-latin1
+     /Courier-Oblique findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Courier-Bold-latin1
+     /Courier-Bold findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Courier-BoldOblique-latin1
+     /Courier-BoldOblique findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Helvetica-latin1
+     /Helvetica findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Helvetica-Oblique-latin1
+     /Helvetica-Oblique findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Helvetica-Bold-latin1
+     /Helvetica-Bold findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Helvetica-BoldOblique-latin1
+     /Helvetica-BoldOblique findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Helvetica-Narrow-latin1
+     /Helvetica-Narrow findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Helvetica-Narrow-Oblique-latin1
+     /Helvetica-Narrow-Oblique findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Helvetica-Narrow-Bold-latin1
+     /Helvetica-Narrow-Bold findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Helvetica-Narrow-BoldOblique-latin1
+     /Helvetica-Narrow-BoldOblique findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /NewCenturySchoolbook-Roman-latin1
+     /NewCenturySchoolbook-Roman findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /NewCenturySchoolbook-Italic-latin1
+     /NewCenturySchoolbook-Italic findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /NewCenturySchoolbook-Bold-latin1
+     /NewCenturySchoolbook-Bold findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /NewCenturySchoolbook-BoldItalic-latin1
+     /NewCenturySchoolbook-BoldItalic findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Palatino-Roman-latin1
+     /Palatino-Roman findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Palatino-Italic-latin1
+     /Palatino-Italic findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Palatino-Bold-latin1
+     /Palatino-Bold findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Palatino-BoldItalic-latin1
+     /Palatino-BoldItalic findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /Symbol-latin1
+     /Symbol findfont
+ definefont pop
+ /ZapfChancery-MediumItalic-latin1
+     /ZapfChancery-MediumItalic findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /ZapfDingbats-latin1
+     /ZapfDingbats findfont
+     dup length dict begin
+ 	{1 index /FID ne {def} {pop pop} ifelse} forall
+ 	/Encoding isolatin1encoding def
+     currentdict end
+ definefont pop
+ /cp {closepath} bind def
+ /c {curveto} bind def
+ /f {fill} bind def
+ /a {arc} bind def
+ /ef {eofill} bind def
+ /ex {exch} bind def
+ /gr {grestore} bind def
+ /gs {gsave} bind def
+ /sa {save} bind def
+ /rs {restore} bind def
+ /l {lineto} bind def
+ /m {moveto} bind def
+ /rm {rmoveto} bind def
+ /n {newpath} bind def
+ /s {stroke} bind def
+ /sh {show} bind def
+ /slc {setlinecap} bind def
+ /slj {setlinejoin} bind def
+ /slw {setlinewidth} bind def
+ /srgb {setrgbcolor} bind def
+ /rot {rotate} bind def
+ /sc {scale} bind def
+ /sd {setdash} bind def
+ /ff {findfont} bind def
+ /sf {setfont} bind def
+ /scf {scalefont} bind def
+ /sw {stringwidth pop} bind def
+ /tr {translate} bind def
+ 
+ /ellipsedict 8 dict def
+ ellipsedict /mtrx matrix put
+ /ellipse
+ { ellipsedict begin
+    /endangle exch def
+    /startangle exch def
+    /yrad exch def
+    /xrad exch def
+    /y exch def
+    /x exch def   /savematrix mtrx currentmatrix def
+    x y tr xrad yrad sc
+    0 0 1 startangle endangle arc
+    savematrix setmatrix
+    end
+ } def
+ 
+ /mergeprocs {
+ dup length
+ 3 -1 roll
+ dup
+ length
+ dup
+ 5 1 roll
+ 3 -1 roll
+ add
+ array cvx
+ dup
+ 3 -1 roll
+ 0 exch
+ putinterval
+ dup
+ 4 2 roll
+ putinterval
+ } bind def
+ 48.188201 -48.188201 scale
+ -0.373158 -11.043529 translate
+ %%EndProlog
+ 
+ 
+ /Times-Roman-latin1 ff 0.430000 scf sf
+ 0.000000 0.000000 0.000000 srgb
+ (Data) dup sw 2 div 1.750000 ex sub 0.750000 m gs 1 -1 sc sh gr
+ (Address Space) dup sw 2 div 1.750000 ex sub 1.180000 m gs 1 -1 sc sh gr
+ 1.000000 1.000000 1.000000 srgb
+ n 0.500000 1.375000 m 0.500000 5.375000 l 3.000000 5.375000 l 3.000000 1.375000 l f
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slj
+ 0.000000 0.000000 0.000000 srgb
+ n 0.500000 1.375000 m 0.500000 5.375000 l 3.000000 5.375000 l 3.000000 1.375000 l cp s
+ 0.670000 0.670000 0.670000 srgb
+ n 0.500000 1.875000 m 0.500000 4.500000 l 3.000000 4.500000 l 3.000000 1.875000 l f
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slj
+ 0.000000 0.000000 0.000000 srgb
+ n 0.500000 1.875000 m 0.500000 4.500000 l 3.000000 4.500000 l 3.000000 1.875000 l cp s
+ /Courier-latin1 ff 0.800000 scf sf
+ () dup sw 2 div 2.000000 ex sub 0.750000 m gs 1 -1 sc sh gr
+ /Times-Roman-latin1 ff 0.430000 scf sf
+ (program) dup sw 2 div 1.750000 ex sub 2.625000 m gs 1 -1 sc sh gr
+ (variables) dup sw 2 div 1.750000 ex sub 3.055000 m gs 1 -1 sc sh gr
+ (and heap) dup sw 2 div 1.750000 ex sub 3.485000 m gs 1 -1 sc sh gr
+ 1.000000 1.000000 1.000000 srgb
+ n 6.250000 1.250000 m 6.250000 7.250000 l 8.750000 7.250000 l 8.750000 1.250000 l f
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slj
+ 0.000000 0.000000 0.000000 srgb
+ n 6.250000 1.250000 m 6.250000 7.250000 l 8.750000 7.250000 l 8.750000 1.250000 l cp s
+ /Times-Roman-latin1 ff 0.430000 scf sf
+ (Instruction) dup sw 2 div 7.500000 ex sub 0.625000 m gs 1 -1 sc sh gr
+ (Address Space) dup sw 2 div 7.500000 ex sub 1.055000 m gs 1 -1 sc sh gr
+ 0.670000 0.670000 0.670000 srgb
+ n 6.250000 1.500000 m 6.250000 4.125000 l 8.750000 4.125000 l 8.750000 1.500000 l f
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slj
+ 0.000000 0.000000 0.000000 srgb
+ n 6.250000 1.500000 m 6.250000 4.125000 l 8.750000 4.125000 l 8.750000 1.500000 l cp s
+ /Times-Roman-latin1 ff 0.430000 scf sf
+ (main) dup sw 2 div 7.500000 ex sub 2.250000 m gs 1 -1 sc sh gr
+ (program) dup sw 2 div 7.500000 ex sub 2.680000 m gs 1 -1 sc sh gr
+ 0.900000 0.900000 0.900000 srgb
+ n 6.250000 4.375000 m 6.250000 6.875000 l 8.750000 6.875000 l 8.750000 4.375000 l f
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slj
+ 0.000000 0.000000 0.000000 srgb
+ n 6.250000 4.375000 m 6.250000 6.875000 l 8.750000 6.875000 l 8.750000 4.375000 l cp s
+ /Times-Roman-latin1 ff 0.430000 scf sf
+ (overlay) dup sw 2 div 7.500000 ex sub 5.125000 m gs 1 -1 sc sh gr
+ (area) dup sw 2 div 7.500000 ex sub 5.555000 m gs 1 -1 sc sh gr
+ /Times-Roman-latin1 ff 0.430000 scf sf
+ (mapped) dup sw 2 div 4.625000 ex sub 4.375000 m gs 1 -1 sc sh gr
+ (address) dup sw 2 div 4.625000 ex sub 4.805000 m gs 1 -1 sc sh gr
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slc
+ n 5.375000 4.375000 m 6.250000 4.375000 l s
+ 0 slj
+ n 5.950000 4.525000 m 6.250000 4.375000 l 5.950000 4.225000 l f
+ 1.000000 1.000000 1.000000 srgb
+ n 12.875000 1.250000 m 12.875000 10.750000 l 15.375000 10.750000 l 15.375000 1.250000 l f
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slj
+ 0.000000 0.000000 0.000000 srgb
+ n 12.875000 1.250000 m 12.875000 10.750000 l 15.375000 10.750000 l 15.375000 1.250000 l cp s
+ /Times-Roman-latin1 ff 0.430000 scf sf
+ (Larger) dup sw 2 div 14.125000 ex sub 0.625000 m gs 1 -1 sc sh gr
+ (Address Space) dup sw 2 div 14.125000 ex sub 1.055000 m gs 1 -1 sc sh gr
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slj
+ 0 slc
+ n 12.625000 3.000000 m 11.500000 2.875000 10.250000 5.000000 9.000000 5.000000 c s
+ 0 slj
+ n 9.300000 4.850000 m 9.000000 5.000000 l 9.300000 5.150000 l f
+ 0.900000 0.900000 0.900000 srgb
+ n 12.875000 2.000000 m 12.875000 4.000000 l 15.375000 4.000000 l 15.375000 2.000000 l f
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slj
+ 0.000000 0.000000 0.000000 srgb
+ n 12.875000 2.000000 m 12.875000 4.000000 l 15.375000 4.000000 l 15.375000 2.000000 l cp s
+ /Times-Roman-latin1 ff 0.430000 scf sf
+ (overlay 1) dup sw 2 div 14.125000 ex sub 2.750000 m gs 1 -1 sc sh gr
+ 0.900000 0.900000 0.900000 srgb
+ n 12.875000 6.750000 m 12.875000 9.000000 l 15.375000 9.000000 l 15.375000 6.750000 l f
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slj
+ 0.000000 0.000000 0.000000 srgb
+ n 12.875000 6.750000 m 12.875000 9.000000 l 15.375000 9.000000 l 15.375000 6.750000 l cp s
+ /Times-Roman-latin1 ff 0.430000 scf sf
+ (overlay 3) dup sw 2 div 14.125000 ex sub 7.625000 m gs 1 -1 sc sh gr
+ 0.900000 0.900000 0.900000 srgb
+ n 12.875000 4.625000 m 12.875000 5.750000 l 15.375000 5.750000 l 15.375000 4.625000 l f
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slj
+ 0.000000 0.000000 0.000000 srgb
+ n 12.875000 4.625000 m 12.875000 5.750000 l 15.375000 5.750000 l 15.375000 4.625000 l cp s
+ /Times-Roman-latin1 ff 0.430000 scf sf
+ (overlay 2) dup sw 2 div 14.125000 ex sub 5.375000 m gs 1 -1 sc sh gr
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slj
+ 0 slc
+ n 12.750000 5.250000 m 11.125000 4.500000 10.250000 5.750000 9.000000 5.625000 c s
+ 0 slj
+ n 9.313437 5.505596 m 9.000000 5.625000 l 9.283586 5.804107 l f
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slj
+ 0 slc
+ n 12.625000 7.875000 m 10.875000 8.125000 10.000000 6.375000 9.000000 6.250000 c s
+ 0 slj
+ n 9.316289 6.138369 m 9.000000 6.250000 l 9.279078 6.436052 l f
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slc
+ n 16.375000 2.000000 m 15.375000 2.000000 l s
+ 0 slj
+ n 15.675000 1.850000 m 15.375000 2.000000 l 15.675000 2.150000 l f
+ /Times-Roman-latin1 ff 0.430000 scf sf
+ (overlay 1) dup sw 2 div 17.625000 ex sub 2.000000 m gs 1 -1 sc sh gr
+ (load address) dup sw 2 div 17.625000 ex sub 2.430000 m gs 1 -1 sc sh gr
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slc
+ n 16.375000 6.750000 m 15.375000 6.750000 l s
+ 0 slj
+ n 15.675000 6.600000 m 15.375000 6.750000 l 15.675000 6.900000 l f
+ /Times-Roman-latin1 ff 0.430000 scf sf
+ (overlay 3) dup sw 2 div 17.625000 ex sub 6.750000 m gs 1 -1 sc sh gr
+ (load address) dup sw 2 div 17.625000 ex sub 7.180000 m gs 1 -1 sc sh gr
+ 0.100000 slw
+ [] 0 sd
+ [] 0 sd
+ 0 slc
+ n 16.337627 4.641824 m 15.375000 4.625000 l s
+ 0 slj
+ n 15.677575 4.480265 m 15.375000 4.625000 l 15.672333 4.780219 l f
+ /Times-Roman-latin1 ff 0.430000 scf sf
+ (overlay 2) dup sw 2 div 17.625000 ex sub 4.625000 m gs 1 -1 sc sh gr
+ (load address) dup sw 2 div 17.625000 ex sub 5.055000 m gs 1 -1 sc sh gr
+ /Times-Roman-latin1 ff 0.430000 scf sf
+ (To map an overlay, copy its code) 4.625000 8.375000 m gs 1 -1 sc sh gr
+ (from the larger address space to) 4.625000 8.805000 m gs 1 -1 sc sh gr
+ (the instruction address space.) 4.625000 9.235000 m gs 1 -1 sc sh gr
+ () 4.625000 9.665000 m gs 1 -1 sc sh gr
+ (Since all the overlays shown here) 4.625000 10.095000 m gs 1 -1 sc sh gr
+ (use the same mapped address,) 4.625000 10.525000 m gs 1 -1 sc sh gr
+ (only one may be mapped at a time.) 4.625000 10.955000 m gs 1 -1 sc sh gr
+ showpage
Index: gdb/doc/overlay-area.txt
===================================================================
RCS file: overlay-area.txt
diff -N overlay-area.txt
*** /dev/null	Tue May  5 13:32:27 1998
--- gdb/doc/overlay-area.txt	Tue Oct  9 09:40:02 2001
***************
*** 0 ****
--- 1,28 ----
+        Data                   Instruction            Larger
+    Address Space             Address Space        Address Space
+    +-----------+             +-----------+        +-----------+
+    |           |             |           |        |           |
+    +-----------+             +-----------+        +-----------+<-- overlay 1
+    | program   |             |   main    |        |           | load address
+    | variables |             |  program  |        | overlay 1 |
+    | and heap  |             |           |    ,---|           |
+    +-----------+             |           |    |   |           |
+    |           |             +-----------+    |   +-----------+
+    +-----------+             |           |    |   |           |
+                   mapped --->+-----------+    /   +-----------+<-- overlay 2
+                   address    |  overlay  | <-'    | overlay 2 | load address
+                              |   area    |  <-----|           |
+                              |           | <---.  +-----------+
+                              |           |     |  |           |
+                              +-----------+     |  |           |
+                              |           |     |  +-----------+<-- overlay 3
+                              +-----------+     `--|           | load address
+                                                   | overlay 3 |
+                                                   |           |
+                                                   +-----------+
+                                                   |           |
+                                                   +-----------+
+ 
+        To map an overlay, copy its code from the larger address space
+        to the instruction address space.  Since the overlays shown here
+        all use the same mapped address, only one may be mapped at a time.


begin 666 gdb/doc/overlay-area.dia
M'XL(`````````^U=W9.;.!)_YZ^@G%>OC+Y`[.S,UN[=RU6EZJHN>7?)MF)S
MB\$%.!/OP_WM)P&.QP9_#$C,.-&D,F,;53<2W?W[M;K!O_W^;1V[7T661VGR
M.(+`&_W^Y/RVB/BO\O\RXVM7#DAR]>YQM"J*S:^3R?/S,XAW.2_2#,31%N1B
M\C\>QWPB!TU&3X[KOA2PX`57G]6?\J+(HMFV$&["U^)Q-./SOY99NDT6HVI4
M/6Z>QFGF?N7QX^C#E_)G-*G%3([D7)"]X1N1G8I=;](\DD.*W:8QY(P<]?O%
MF'I4+@<ERZ</'T51B.Q#=5KUAP=Y;2=[5E&QYMDR2IJZ,L'C:C$0H&2_$J]7
M,#.M(#:M(#.M(,JGFS0K,AX5326S-(T%3RH]1;85W?7D<QY+4[DT$0B"[O*_
M1$617IG!%Q[GMTRA^OB[[[S6#Y=9M+CLAD<CSDAYCA;%:OKMTH)Y`"+:?<DJ
M#3N#&KY&>32+1=LLHJ2HKWI_\;N>XOM>[VVT$/F5*WX\YHRD53UL<FWBI^-N
MG4'UT0E4E2IBOA-9+?[/`TBY]1K7[O]B%=+9?\6\J*?WJ>#)@F<+]Q?WL_A6
MC`X8ZXW<:/$X^K=WO#ZG,Y+29!QJ+-`F/5Q($-"Q)W^=SKIY.<\IF,U.Y6=R
M"CQ9QF)O[CC`D#*IAWB,HO`!2P?P&1E#(/]0W$UWH9;D1/.I@9R,.1=%2[P]
M&G<"S_^4%]7Y8['(1)Z[GS9\+LY`]05G.Q=BTZ1H4ZT^KX=\CM8B_^4_Z9HG
M+XWX];I6(EJN6K6]#$X$]]-R;'$W6ET7126]:U/UDO=YY4\_11)DE\E:M%\H
MD6S7+5'Q4MAMBROG8N/D$!9NB!-_IM]:P@3L&R8\0*6S8L-A@I1*$)7QP:-C
M"@CJJ$_$8CV=IUG2I.7Z)E4J*=&^.;$7++*'\(:[GD@GW63GJ_1YVI(R7:>G
MYBP4Z;%0-H2%LKV%$D`',%!VOP:*@-_5A6=IMA#9M=.73+J;^"B12S\]!9`&
M>/#RYQ[=[`QAQ'W]#)EFBQ"$BAM`2"D,'I2ZL'SY_DGBD)3P'^DVBV3P&(`.
M,M-L$%DJ:((*GHD`1$O*V".RWPBUS&?(EWH0PQ0_2'T8!F2,`0WP/62,FRQ5
MNP'.5YY%7*;ZN2,OC+L2?&,SQ[Z9XXGQV7AAD)C3ON'"!TBQ6*/10NI0*AX8
M8.,`8).<O.=TWIZ3^S\0F_7[&F<`%-?T#1LG1!CZ4H^",A0J*PVJW4]([@++
M_I7(5]MY(=?>;H)J@[(6V[-(9A#)`DU(9A[(""V1C``8T`&PS&XOV>TE38#,
M=``R,DT6_<##3!I^Z#&96C*`4>@CJ3:XCV+DFD>)4^>7%H%[(O"QL5D`-@C`
MH18`)H;+D`J"25F%5!CL@Q"9QV!RSU7(SM+?!P8+JO[]0!@,/1T@3(][U`RX
M64`85:8?E!N\3/H!)$JO?Q])<2H7/N8[ATM3M2C<$X7I:4>DA6&#`:)W.Q!1
MB9=Q),:`84)\J<?#*D100""E1+YG(;X/HK[9B(7#JRTS&R1Z!(E6B[-A0DN8
M^!@EHBU,].[)HNIR&0\35)%U%20"^N`#+%_Y7?7-TR29BF11SN'5,]-/[J65
MS#>GI]'6A/\:H;&\W,9(MUR\*<^R]/E4]L'B<4_)TU@DR\LGWUO%U>6Y48,R
M*%$63O(&YNR/N"OIB>I>`#ARB[3,D]W#4>6/C1L23H3JZ1'NW1H&D>I5-%WK
M55JJ$NP#+%N$Q_"H1TE_BMY[7F^?HX?@A\IP^_<P$95P&"_]2LN162XZE'ZE
MQ5(/LOLI_7[DV5)DMNJKKX&IU?(LD]6S[RS^CD1VCL]2#0"GLA!L,&(P$.*R
MPRTD\N^#TL@@'E/@=2]UBK^G5PEM<VHM8V!9+V&7.:]$8RGHXI!PW)F?*ZB>
MJNN>GR>87D-WZS'+F=\99]9#8WU--!8-P6%#NB>Q,G^E`Y!8=+=5)EMC>D\,
M/-#$P)'AFXDP0#!0O1VD[/60SN9AQ!2*879'52876M+=GW0C>YO18'><,TTP
M[!L.$!422RU[(`Z'`>+N\WH/'1_(MGR\*S@.-<%Q8'I#K,;CH+ZM;X_'`0C@
M/75]N-CB<7\\#NPFV&"`C#Q-@$S,[YFS,A^FP??DF`Y2X.DQL[?'9-B]7\^"
MLA%01E`3*%/##11[4*9UG]4>E*7O^7<%RLB"<G]0IK;':NC*%$(:L#E0E\XH
M,M>U*0J@SZK:%,-E;<KO_(BJ6VM3C<FU5J=@Q1MNJ$Z!X%J!JCL7L$4J6Z2Z
MT>^QIHIT8/C!=TP]D\M7'5?2%:O,+1RD'AW<4&U6U)TUGJC<&"?/'U_S>A]8
MI[=.;ZJA&O5O6RMMV&QINFJGAFI#W"^3;]3U`MS<3=V<5LL8VF?JMI'Z9VRD
MAOYQ)S72W4E]+O/OWVE6;HV:=71?I?=0>KI/R](X`P'S0^GN%-Y7:=R)4[YP
M[5U6&K8`&F9GTW^CC,#7Q`A,5\DK4N"K)Q/5K"#H7"9_+2WPKR3K-3/HO@26
M'/R4Y("]$3D(-)$#TSXO_1Q*?N#O6^=J?A#<RW>V?"_56WZ@F1_XMH]N.(K`
M=%`$'*C'*/@$L@'V#LJG)WDE4\"L5!PB$@[!%EJG>98Q]*CW6\KP,U(&Y+T1
M90@U40;CO3OUG@+9M_?5G('>R^VNWSL)+&?0S!F([?4;[@E/V-/SA"=FN/-H
MKZ7N._(`(X2,(02>#!?O/UI\3MTUW[@\<>NX,9;PL-FY49'+%POA?,G2M5NL
MA!N7M]'OXXF;J]OH):8XZEAT>+KZ\0#@.)^B1`[D<5Q*J;7(PZOT6<*3R(2S
MS45Y+)?G[%8/G-I+&3MI$N_<-%$'=N[L<+QPN5O(0`-L9.O]3"KVX_5+>0,$
7MNI]^?VX3\[1%^@^.?\'ISB1^E%^````
`
end


begin 666 gdb/doc/overlay-area.png
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
6_P'D`.P-'.I0B`````!)14Y$KD)@@@``
`
end


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]