Update SymtabAPI documentation
[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, std::vector< Statement *> & lines );
16 bool getSourceLines( Offset addressInRange, std::vector< LineNoTuple > & lines);
17
18 \end{apient}
19 \apidesc{
20 These methods returns the source file names and line numbers corresponding to the given address \code{addressInRange}. Searches within this line map. 
21 Return \code{true} if at least one tuple corresponding to the offset was found and returns \code{false} if none found.
22 }
23
24 \begin{apient}
25 bool addLine(const char * lineSource, unsigned int lineNo, 
26             unsigned int lineOffset, Offset lowInclusiveAddr, 
27             Offset highExclusiveAddr)
28 \end{apient}
29 \apidesc{
30 This method adds a new line to the line Map. \code{lineSource} represents the source file name. \code{lineNo} represents the line number.
31 }
32
33 \begin{apient}
34 bool addAddressRange(Offset lowInclusiveAddr, Offset highExclusiveAddr,
35                     const char* lineSource, unsigned int lineNo, 
36                     unsigned int lineOffset = 0);
37 \end{apient}
38 \apidesc{
39 This method adds an address range \code{[lowInclusiveAddr, highExclusiveAddr)} for the line with line number \code{lineNo} in source file \code{lineSource}. 
40 }
41
42 \begin{apient}
43 LineInformation::const_iterator begin() const
44 \end{apient}
45 \apidesc{
46 This method returns an iterator pointing to the beginning of the line information for the module.
47 This is useful for iterating over the entire line information present in a module. An example described in Section 6.3.3 gives more information on how to use \code{begin()} for iterating over the line information.
48 }
49
50 \begin{apient}
51 LineInformation::const_iterator end() const
52 \end{apient}
53 \apidesc{
54 This method returns an iterator pointing to the end of the line information for the module.
55 This is useful for iterating over the entire line information present in a module. An example described in Section 6.3.3 gives more information on how to use \code{end()} for iterating over the line information.
56 }