diff options
Diffstat (limited to 'gdb/doc/gdbint.texinfo')
-rw-r--r-- | gdb/doc/gdbint.texinfo | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo index 21ec1e3..db293ef 100644 --- a/gdb/doc/gdbint.texinfo +++ b/gdb/doc/gdbint.texinfo @@ -1545,6 +1545,39 @@ A function that inserts or removes (dependant on the next instruction. See @code{sparc-tdep.c} and @code{rs6000-tdep.c} for examples. +@item SOFUN_ADDRESS_MAYBE_MISSING + +Somebody clever observed that, the more actual addresses you have in the +debug information, the more time the linker has to spend relocating +them. So whenever there's some other way the debugger could find the +address it needs, you should omit it from the debug info, to make +linking faster. + +@code{SOFUN_ADDRESS_MAYBE_MISSING} indicates that a particular set of +hacks of this sort are in use, affecting @code{N_SO} and @code{N_FUN} +entries in stabs-format debugging information. @code{N_SO} stabs mark +the beginning and ending addresses of compilation units in the text +segment. @code{N_FUN} stabs mark the starts and ends of functions. + +@code{SOFUN_ADDRESS_MAYBE_MISSING} means two things: +@itemize @bullet + +@item +@code{N_FUN} stabs have an address of zero. Instead, you should find the +addresses where the function starts by taking the function name from +the stab, and then looking that up in the minsyms (the linker/ +assembler symbol table). In other words, the stab has the name, and +the linker / assembler symbol table is the only place that carries +the address. + +@item +@code{N_SO} stabs have an address of zero, too. You just look at the +@code{N_FUN} stabs that appear before and after the @code{N_SO} stab, +and guess the starting and ending addresses of the compilation unit from +them. + +@end itemize + @item PCC_SOL_BROKEN (Used only in the Convex target.) |