1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<!-- Copyright (C) 1992-2021 Free Software Foundation, Inc.
4Contributed by Cygnus Support.  Written by Julia Menapace, Jim Kingdon,
5and David MacKenzie.
6
7Permission is granted to copy, distribute and/or modify this document
8under the terms of the GNU Free Documentation License, Version 1.3 or
9any later version published by the Free Software Foundation; with no
10Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
11Texts.  A copy of the license is included in the section entitled "GNU
12Free Documentation License". -->
13<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
14<head>
15<title>STABS: Line Numbers</title>
16
17<meta name="description" content="STABS: Line Numbers">
18<meta name="keywords" content="STABS: Line Numbers">
19<meta name="resource-type" content="document">
20<meta name="distribution" content="global">
21<meta name="Generator" content="makeinfo">
22<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
23<link href="index.html#Top" rel="start" title="Top">
24<link href="Symbol-Types-Index.html#Symbol-Types-Index" rel="index" title="Symbol Types Index">
25<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
26<link href="Program-Structure.html#Program-Structure" rel="up" title="Program Structure">
27<link href="Procedures.html#Procedures" rel="next" title="Procedures">
28<link href="Include-Files.html#Include-Files" rel="previous" title="Include Files">
29<style type="text/css">
30<!--
31a.summary-letter {text-decoration: none}
32blockquote.smallquotation {font-size: smaller}
33div.display {margin-left: 3.2em}
34div.example {margin-left: 3.2em}
35div.indentedblock {margin-left: 3.2em}
36div.lisp {margin-left: 3.2em}
37div.smalldisplay {margin-left: 3.2em}
38div.smallexample {margin-left: 3.2em}
39div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
40div.smalllisp {margin-left: 3.2em}
41kbd {font-style:oblique}
42pre.display {font-family: inherit}
43pre.format {font-family: inherit}
44pre.menu-comment {font-family: serif}
45pre.menu-preformatted {font-family: serif}
46pre.smalldisplay {font-family: inherit; font-size: smaller}
47pre.smallexample {font-size: smaller}
48pre.smallformat {font-family: inherit; font-size: smaller}
49pre.smalllisp {font-size: smaller}
50span.nocodebreak {white-space:nowrap}
51span.nolinebreak {white-space:nowrap}
52span.roman {font-family:serif; font-weight:normal}
53span.sansserif {font-family:sans-serif; font-weight:normal}
54ul.no-bullet {list-style: none}
55-->
56</style>
57
58
59</head>
60
61<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
62<a name="Line-Numbers"></a>
63<div class="header">
64<p>
65Next: <a href="Procedures.html#Procedures" accesskey="n" rel="next">Procedures</a>, Previous: <a href="Include-Files.html#Include-Files" accesskey="p" rel="previous">Include Files</a>, Up: <a href="Program-Structure.html#Program-Structure" accesskey="u" rel="up">Program Structure</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>
66</div>
67<hr>
68<a name="Line-Numbers-1"></a>
69<h3 class="section">2.4 Line Numbers</h3>
70
71<a name="index-N_005fSLINE"></a>
72<p>An <code>N_SLINE</code> symbol represents the start of a source line.  The
73desc field contains the line number and the value contains the code
74address for the start of that source line.  On most machines the address
75is absolute; for stabs in sections (see <a href="Stab-Sections.html#Stab-Sections">Stab Sections</a>), it is
76relative to the function in which the <code>N_SLINE</code> symbol occurs.
77</p>
78<a name="index-N_005fDSLINE"></a>
79<a name="index-N_005fBSLINE"></a>
80<p>GNU documents <code>N_DSLINE</code> and <code>N_BSLINE</code> symbols for line
81numbers in the data or bss segments, respectively.  They are identical
82to <code>N_SLINE</code> but are relocated differently by the linker.  They
83were intended to be used to describe the source location of a variable
84declaration, but I believe that GCC2 actually puts the line number in
85the desc field of the stab for the variable itself.  GDB has been
86ignoring these symbols (unless they contain a string field) since
87at least GDB 3.5.
88</p>
89<p>For single source lines that generate discontiguous code, such as flow
90of control statements, there may be more than one line number entry for
91the same source line.  In this case there is a line number entry at the
92start of each code range, each with the same line number.
93</p>
94<p>XCOFF does not use stabs for line numbers.  Instead, it uses COFF line
95numbers (which are outside the scope of this document).  Standard COFF
96line numbers cannot deal with include files, but in XCOFF this is fixed
97with the <code>C_BINCL</code> method of marking include files (see <a href="Include-Files.html#Include-Files">Include Files</a>).
98</p>
99
100
101
102</body>
103</html>
104