SymtabAPI manual updates; Add .gitignore under stackWalkAPI/doc
[dyninst.git] / symtabAPI / doc / API / LineInfo / LineInformation.tex
1 \subsection{Class LineInformation}\label{LineInformation}
2 This class represents an entire line map for a module. This contains mappings from a line number within a source to the address ranges.
3
4 \begin{apient}
5 bool getAddressRanges(const char * lineSource,
6                       unsigned int LineNo,
7                       std::vector<AddressRange> & ranges)
8 \end{apient}
9 \apidesc{
10 This methos returns the address ranges in \code{ranges} corresponding to the line with line number \code{lineNo} in the source file \code{lineSource}. Searches within this line map.
11 Return \code{true} if at least one address range corresponding to the line number was found and returns \code{false} if none found.
12 }
13
14 \begin{apient}
15 bool getSourceLines(Offset addressInRange,
16                     std::vector<Statement *> & lines)
17 bool getSourceLines(Offset addressInRange,
18                     std::vector<LineNoTuple> & lines)
19
20 \end{apient}
21 \apidesc{
22 These methods returns the source file names and line numbers corresponding to the given address \code{addressInRange}. Searches within this line map. 
23 Return \code{true} if at least one tuple corresponding to the offset was found and returns \code{false} if none found.
24 }
25
26 \begin{apient}
27 bool addLine(const char * lineSource,
28              unsigned int lineNo,
29              unsigned int lineOffset,
30              Offset lowInclusiveAddr,
31              Offset highExclusiveAddr)
32 \end{apient}
33 \apidesc{
34 This method adds a new line to the line Map. \code{lineSource} represents the source file name. \code{lineNo} represents the line number.
35 }
36
37 \begin{apient}
38 bool addAddressRange(Offset lowInclusiveAddr,
39                      Offset highExclusiveAddr,
40                      const char* lineSource,
41                      unsigned int lineNo,
42                      unsigned int lineOffset = 0);
43 \end{apient}
44 \apidesc{
45 This method adds an address range \code{[lowInclusiveAddr, highExclusiveAddr)} for the line with line number \code{lineNo} in source file \code{lineSource}. 
46 }
47
48 \begin{apient}
49 LineInformation::const_iterator begin() const
50 \end{apient}
51 \apidesc{
52 This method returns an iterator pointing to the beginning of the line information for the module.
53 This is useful for iterating over the entire line information present in a module. An example described in Section \ref{subsubsec:typeInfo} gives more information on how to use \code{begin()} for iterating over the line information.
54 }
55
56 \begin{apient}
57 LineInformation::const_iterator end() const
58 \end{apient}
59 \apidesc{
60 This method returns an iterator pointing to the end of the line information for the module.
61 This is useful for iterating over the entire line information present in a module. An example described in Section \ref{subsubsec:typeInfo} gives more information on how to use \code{end()} for iterating over the line information.
62 }