[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
11.3 Automatic Overlay Debugging
No value for GDBN 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
overlay auto
command (see section Overlay Commands), No value for GDBN
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 No value for GDBN's automatic overlay debugging:
-
_ovly_table
: This variable must be an array of the following structures:
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; }
-
_novlys
: This variable must be a four-byte signed integer, holding the total number of elements in
_ovly_table
.
To decide whether a particular overlay is mapped or not, No value for GDBN
looks for an entry in _ovly_table
whose vma
and
lma
members equal the VMA and LMA of the overlay's section in the
executable file. When No value for GDBN finds a matching entry, it consults
the entry's mapped
member to determine whether the overlay is
currently mapped.
In addition, your overlay manager may define a function called
_ovly_debug_event
. If this function is defined, No value for GDBN
will silently set a breakpoint there. If the overlay manager then
calls this function whenever it has changed the overlay table, this
will enable No value for GDBN to accurately keep track of which overlays
are in program memory, and update any breakpoints that may be set
in overlays. This will allow breakpoints to work even if the
overlays are kept in ROM or other non-writable memory while they
are not being executed.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |