blob: 5eaf27ff01715c4cb99b03bff71510d4a8801051 [file] [log] [blame]
<!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: Transformations On Global Variables</title>
<meta name="description" content="STABS: Transformations On Global Variables">
<meta name="keywords" content="STABS: Transformations On 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="Transformations-On-Symbol-Tables.html#Transformations-On-Symbol-Tables" rel="up" title="Transformations On Symbol Tables">
<link href="Stab-Section-Transformations.html#Stab-Section-Transformations" rel="next" title="Stab Section Transformations">
<link href="Transformations-On-Static-Variables.html#Transformations-On-Static-Variables" rel="prev" title="Transformations On Static 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="Transformations-On-Global-Variables"></a>
<div class="header">
<p>
Next: <a href="Stab-Section-Transformations.html#Stab-Section-Transformations" accesskey="n" rel="next">Stab Section Transformations</a>, Previous: <a href="Transformations-On-Static-Variables.html#Transformations-On-Static-Variables" accesskey="p" rel="prev">Transformations On Static Variables</a>, Up: <a href="Transformations-On-Symbol-Tables.html#Transformations-On-Symbol-Tables" accesskey="u" rel="up">Transformations On Symbol Tables</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="Transformations-on-Global-Variables"></a>
<h4 class="subsection">7.2.2 Transformations on Global Variables</h4>
<p>Stabs for global variables do not contain location information. In
this case, the debugger finds location information in the assembler or
linker symbol table entry describing the variable. The source line:
</p>
<div class="example">
<pre class="example">char g_foo = 'c';
</pre></div>
<p>generates the stab:
</p>
<div class="example">
<pre class="example">.stabs &quot;g_foo:G2&quot;,32,0,0,0
</pre></div>
<p>The variable is represented by two symbol table entries in the object
file (see below). The first one originated as a stab. The second one
is an external symbol. The upper case &lsquo;<samp>D</samp>&rsquo; signifies that the
<code>n_type</code> field of the symbol table contains 7, <code>N_DATA</code> with
local linkage. The stab&rsquo;s value is zero since the value is not used for
<code>N_GSYM</code> stabs. The value of the linker symbol is the relocatable
address corresponding to the variable.
</p>
<div class="example">
<pre class="example">00000000 - 00 0000 GSYM g_foo:G2
00000080 D _g_foo
</pre></div>
<p>These entries as transformed by the linker. The linker symbol table
entry now holds an absolute address:
</p>
<div class="example">
<pre class="example">00000000 - 00 0000 GSYM g_foo:G2
&hellip;
0000e008 D _g_foo
</pre></div>
</body>
</html>