Next: Register Variables, Previous: Stack Variables, Up: Variables
A variable whose scope is not specific to just one source file is
represented by the ‘G’ symbol descriptor.  These stabs use the
N_GSYM stab type (C_GSYM for XCOFF).  The type information for
the stab (see String Field) gives the type of the variable.
   
For example, the following source code:
char g_foo = 'c';
yields the following assembly code:
     .stabs "g_foo:G2",32,0,0,0     # 32 is N_GSYM
          .global _g_foo
          .data
     _g_foo:
          .byte 99
   The address of the variable represented by the N_GSYM is not
contained in the N_GSYM stab.  The debugger gets this information
from the external symbol for the global variable.  In the example above,
the .global _g_foo and _g_foo: lines tell the assembler to
produce an external symbol.
   
Some compilers, like GCC, output N_GSYM stabs only once, where
the variable is defined.  Other compilers, like SunOS4 /bin/cc, output a
N_GSYM stab for each compilation unit which references the
variable.