* gdb.texinfo (How Overlays Work): Shrink the overlay diagram.

This commit is contained in:
Andrew Cagney 2002-02-07 23:58:41 +00:00
parent 78b29b405f
commit c928edc06b
2 changed files with 40 additions and 32 deletions

View File

@ -1,3 +1,7 @@
2002-02-07 Andrew Cagney <ac131313@redhat.com>
* gdb.texinfo (How Overlays Work): Shrink the overlay diagram.
2002-02-06 Michael Snyder <msnyder@redhat.com>
* gdb.texinfo (overlays): Mention new magic symbol

View File

@ -6362,44 +6362,48 @@ 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 NB: In the below the mapped area's size is greater or equal to the
@c size of all overlays. This is intentional to remind the developer
@c that overlays don't necessarily need to be the same size.
@example
@group
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 |
| |
+-----------+
| |
+-----------+
Data Instruction Larger
Address Space Address Space Address Space
+-----------+ +-----------+ +-----------+
| | | | | |
+-----------+ +-----------+ +-----------+<-- overlay 1
| program | | main | .----| overlay 1 | load address
| variables | | program | | +-----------+
| and heap | | | | | |
+-----------+ | | | +-----------+<-- overlay 2
| | +-----------+ | | | load address
+-----------+ | | | .-| overlay 2 |
| | | | | |
mapped --->+-----------+ | | +-----------+
address | | | | | |
| overlay | <-' | | |
| 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.
@anchor{A code overlay}A code overlay
@end group
@end example
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.
The diagram (@pxref{A code overlay}) shows a system with separate data
and instruction address spaces. To map an overlay, the program copies
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. 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