diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1994-01-16 18:30:32 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1994-01-16 18:30:32 +0000 |
commit | 8f85a4357a6c06d09e2308f9307b71c20b0766bb (patch) | |
tree | e23b90f02ef2920bed41222a397a585990c96247 /gdb/doc/stabs.texinfo | |
parent | b76dcd4b68c4ca6d03e4af1595f6bb189da98910 (diff) | |
download | gdb-8f85a4357a6c06d09e2308f9307b71c20b0766bb.zip gdb-8f85a4357a6c06d09e2308f9307b71c20b0766bb.tar.gz gdb-8f85a4357a6c06d09e2308f9307b71c20b0766bb.tar.bz2 |
* stabs.texinfo: Re-do stuff about C_BSTAT and move from XCOFF
Differences node to Statics node.
(Statics): Discuss XCOFF use of V symbol descriptor.
Diffstat (limited to 'gdb/doc/stabs.texinfo')
-rw-r--r-- | gdb/doc/stabs.texinfo | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/gdb/doc/stabs.texinfo b/gdb/doc/stabs.texinfo index 64cf47d9..6b4d371 100644 --- a/gdb/doc/stabs.texinfo +++ b/gdb/doc/stabs.texinfo @@ -894,7 +894,9 @@ type declarations using @code{C_DECL}) can also be between the Initialized static variables are represented by the @samp{S} and @samp{V} symbol descriptors. @samp{S} means file scope static, and -@samp{V} means procedure scope static. +@samp{V} means procedure scope static. One exception: in XCOFF, IBM's +xlc compiler always uses @samp{V}, and whether it is file scope or not +is distinguished by whether the stab is located within a function. @c This is probably not worth mentioning; it is only true on the sparc @c for `double' variables which although declared const are actually in @@ -930,8 +932,15 @@ yield the following stabs: .stabs "var_noinit:S1",40,0,0,_var_noinit # @r{40 is N_LCSYM} @end example -In XCOFF files, each symbol has a section number, so the stab type -need not indicate the section. +In XCOFF files, the stab type need not indicate the section; +@code{C_STSYM} can be used for all statics. Also, each static variable +is enclosed in a static block. A @code{C_BSTAT} (emitted with a +@samp{.bs} assembler directive) symbol begins the static block; its +value is the address of the static block, its section is the section of +the variables in that static block, and its name is @samp{.bs}. A +@code{C_ESTAT} (emitted with a @samp{.es} assembler directive) symbol +ends the static block; its name is @samp{.es} and its value and section +are ignored. In ECOFF files, the storage class is used to specify the section, so the stab type need not indicate the section. @@ -3749,15 +3758,6 @@ the mapping is @code{N_@var{stabtype}} becomes @code{C_@var{stabtype}}. Some stab types in a.out are not supported in XCOFF; most of these use @code{C_DECL}. -@c FIXME: Get C_* types for the block, figure out whether it is always -@c used (I suspect not), explain clearly, and move to node Statics. -Exception: initialised static @code{N_STSYM} and un-initialized static -@code{N_LCSYM} both map to the @code{C_STSYM} storage class. But the -distinction is preserved because in XCOFF @code{N_STSYM} and -@code{N_LCSYM} must be emited in a named static block. Begin the block -with @samp{.bs s[RW] data_section_name} for @code{N_STSYM} or @samp{.bs -s bss_section_name} for @code{N_LCSYM}. End the block with @samp{.es}. - @c FIXME: I think they are trying to say something about whether the @c assembler defaults the value to the location counter. @item |