<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1992-2015 Free Software Foundation, Inc.
Contributed by Cygnus Support.  Written by Julia Menapace, Jim Kingdon,
and David MacKenzie.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts.  A copy of the license is included in the section entitled "GNU
Free Documentation License". -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>STABS: Global Variables</title>

<meta name="description" content="STABS: Global Variables">
<meta name="keywords" content="STABS: Global Variables">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Symbol-Types-Index.html#Symbol-Types-Index" rel="index" title="Symbol Types Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Variables.html#Variables" rel="up" title="Variables">
<link href="Register-Variables.html#Register-Variables" rel="next" title="Register Variables">
<link href="Stack-Variables.html#Stack-Variables" rel="prev" title="Stack Variables">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Global-Variables"></a>
<div class="header">
<p>
Next: <a href="Register-Variables.html#Register-Variables" accesskey="n" rel="next">Register Variables</a>, Previous: <a href="Stack-Variables.html#Stack-Variables" accesskey="p" rel="prev">Stack Variables</a>, Up: <a href="Variables.html#Variables" accesskey="u" rel="up">Variables</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Symbol-Types-Index.html#Symbol-Types-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Global-Variables-1"></a>
<h3 class="section">4.2 Global Variables</h3>

<a name="index-N_005fGSYM"></a>
<a name="index-C_005fGSYM"></a>
<p>A variable whose scope is not specific to just one source file is
represented by the &lsquo;<samp>G</samp>&rsquo; symbol descriptor.  These stabs use the
<code>N_GSYM</code> stab type (C_GSYM for XCOFF).  The type information for
the stab (see <a href="String-Field.html#String-Field">String Field</a>) gives the type of the variable.
</p>
<p>For example, the following source code:
</p>
<div class="example">
<pre class="example">char g_foo = 'c';
</pre></div>

<p>yields the following assembly code:
</p>
<div class="example">
<pre class="example">.stabs &quot;g_foo:G2&quot;,32,0,0,0     # <span class="roman">32 is N_GSYM</span>
     .global _g_foo
     .data
_g_foo:
     .byte 99
</pre></div>

<p>The address of the variable represented by the <code>N_GSYM</code> is not
contained in the <code>N_GSYM</code> stab.  The debugger gets this information
from the external symbol for the global variable.  In the example above,
the <code>.global _g_foo</code> and <code>_g_foo:</code> lines tell the assembler to
produce an external symbol.
</p>
<p>Some compilers, like GCC, output <code>N_GSYM</code> stabs only once, where
the variable is defined.  Other compilers, like SunOS4 /bin/cc, output a
<code>N_GSYM</code> stab for each compilation unit which references the
variable.
</p>



</body>
</html>
