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: Questions</title> 16 17<meta name="description" content="STABS: Questions"> 18<meta name="keywords" content="STABS: Questions"> 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="index.html#Top" rel="up" title="Top"> 27<link href="Stab-Sections.html#Stab-Sections" rel="next" title="Stab Sections"> 28<link href="N_005fLENG.html#N_005fLENG" rel="previous" title="N_LENG"> 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="Questions"></a> 63<div class="header"> 64<p> 65Next: <a href="Stab-Sections.html#Stab-Sections" accesskey="n" rel="next">Stab Sections</a>, Previous: <a href="Expanded-Reference.html#Expanded-Reference" accesskey="p" rel="previous">Expanded Reference</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<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="Questions-and-Anomalies"></a> 69<h2 class="appendix">Appendix E Questions and Anomalies</h2> 70 71<ul> 72<li> For GNU C stabs defining local and global variables (<code>N_LSYM</code> and 73<code>N_GSYM</code>), the desc field is supposed to contain the source 74line number on which the variable is defined. In reality the desc 75field is always 0. (This behavior is defined in <samp>dbxout.c</samp> and 76putting a line number in desc is controlled by ‘<samp>#ifdef 77WINNING_GDB</samp>’, which defaults to false). GDB supposedly uses this 78information if you say ‘<samp>list <var>var</var></samp>’. In reality, <var>var</var> can 79be a variable defined in the program and GDB says ‘<samp>function 80<var>var</var> not defined</samp>’. 81 82</li><li> In GNU C stabs, there seems to be no way to differentiate tag types: 83structures, unions, and enums (symbol descriptor ‘<samp>T</samp>’) and typedefs 84(symbol descriptor ‘<samp>t</samp>’) defined at file scope from types defined locally 85to a procedure or other more local scope. They all use the <code>N_LSYM</code> 86stab type. Types defined at procedure scope are emitted after the 87<code>N_RBRAC</code> of the preceding function and before the code of the 88procedure in which they are defined. This is exactly the same as 89types defined in the source file between the two procedure bodies. 90GDB over-compensates by placing all types in block #1, the block for 91symbols of file scope. This is true for default, ‘<samp>-ansi</samp>’ and 92‘<samp>-traditional</samp>’ compiler options. (Bugs gcc/1063, gdb/1066.) 93 94</li><li> What ends the procedure scope? Is it the proc block’s <code>N_RBRAC</code> or the 95next <code>N_FUN</code>? (I believe its the first.) 96</li></ul> 97 98 99 100 101</body> 102</html> 103