Applied patches from Alin Mindroc and Marc Bruenink.
[dyninst.git] / symtabAPI / doc / API / LineInfo / Iterating.tex
1 \subsection{Iterating over Line Information}\label{LineNoIterating}
2 The \code{LineInformation} class also provides the ability for iterating over its data (line numbers and their corresponding address ranges). The following example shows how to iterate over the line information for a given module using SymtabAPI.
3
4 \begin{lstlisting}
5 //Example showing how to iterate over the line information for a given module.
6 using namespace Dyninst;
7 using namespace SymtabAPI;
8
9 //Obj represents a handle to a parsed object file using symtabAPI
10 //Module handle for the module
11 Module *mod;
12
13 //Find the module \lq foo\rq within the object.
14 obj->findModuleByName(mod, "foo");
15
16 // Get the Line Information for module foo.
17 LineInformation *info = mod->getLineInformation();
18
19 //Iterate over the line information
20 LineInformation::const_iterator iter;
21 for( iter = info->begin(); iter != info->end(); iter++)
22 {
23 // First component represents the address range for the line
24 const std::pair<Offset, Offset> addrRange = iter->first;
25
26 //Second component gives information about the line itself.
27 LineNoTuple lt = iter->second;
28 }
29 \end{lstlisting}