Thu May 5 20:23:36 1994 Stan Shebs (shebs@andros.cygnus.com)
authorStan Shebs <shebs@codesourcery.com>
Fri, 6 May 1994 03:31:15 +0000 (03:31 +0000)
committerStan Shebs <shebs@codesourcery.com>
Fri, 6 May 1994 03:31:15 +0000 (03:31 +0000)
* stabs.texinfo (Stab Section Basics): Add comment about alignment
of stabs-in-coff sections.

gdb/doc/ChangeLog
gdb/doc/stabs.texinfo

index b17deb5688af58464c0ace447d6874880c50e465..ecc2b690fb304765a04e85d91c87af0ffa66a089 100644 (file)
@@ -1,3 +1,8 @@
+Thu May  5 20:23:36 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+       * stabs.texinfo (Stab Section Basics): Add comment about alignment
+       of stabs-in-coff sections.
+
 Wed May  4 06:26:11 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
 
        * annotate.texi: Change edition to 0.5 and date to May 1994.
index 3d688560a59b0428cfae5b120e99179801b42548..8a8baf3e8151d12e7915f5c96332bd2bec9ffbb4 100644 (file)
@@ -3936,6 +3936,8 @@ Offset in the @code{.stabstr} section to the source filename.
 
 @item n_other
 Unused field, always zero.
+This may eventually be used to hold overflows from the count in
+the @code{n_desc} field.
 
 @item n_desc
 Count of upcoming symbols, i.e., the number of remaining stabs for this
@@ -3957,6 +3959,18 @@ header @code{sh_type} member set to @code{SHT_STRTAB} to mark it as a
 string table.  SOM and COFF have no way of linking the sections together
 or marking them as string tables.
 
+For COFF, the @code{.stab} and @code{.stabstr} sections are simply
+concatenated by the linker.  GDB then uses the @code{n_desc} fields to
+figure out the extent of the original sections.  Similarly, the
+@code{n_value} fields of the header symbols are added together in order
+to get the actual position of the strings in a desired @code{.stabstr}
+section.  Although this design obviates any need for the linker to relocate
+or otherwise manipulate @code{.stab} and @code{.stabstr} sections, it also
+requires some care to ensure that the offsets are calculated correctly.
+For instance, if the linker were to pad in between the @code{.stabstr}
+sections before concatenating, then the offsets to strings in the middle
+of the executable's @code{.stabstr} section would be wrong.
+
 @node ELF Linker Relocation
 @appendixsec Having the Linker Relocate Stabs in ELF