Home | History | Annotate | Download | only in dwarf

Lines Matching refs:Line

15 // "line" section for a single compilation unit. LineEntries occur in
37 programOffset Offset // section offset of line number program
42 // Current line number program state machine registers
47 // A LineEntry is a row in a DWARF line table.
67 // Line is the source code line number corresponding to these
70 // line.
71 Line int
73 // Column is the column number within the source line of these
75 // be 0 to indicate the "left edge" of the line.
79 // location, such as the beginning of a line, statement, or a
111 // the same source file, line, and column. Where only one
120 // line number table may contain information for multiple
122 // in a line table should always have EndSequence set.
126 // A LineFile is a source file referenced by a DWARF line table entry.
133 // LineReader returns a new reader for the line table of compilation
136 // If this compilation unit has no line table, it returns nil, nil.
138 if d.line == nil {
139 // No line tables available.
143 // Get line table information from cu.
146 // cu has no line table.
149 if off > int64(len(d.line)) {
158 buf := makeBuf(d, u, "line", Offset(off), d.line[off:])
160 r := LineReader{buf: buf, section: d.line, directories: []string{compDir}}
167 // Initialize line reader state.
173 // readHeader reads the line number program header from r.buf and sets
183 return DecodeError{"line", hdrOffset, fmt.Sprintf("line table end %d exceeds section size %d", r.endOffset, buf.off+Offset(len(buf.data)))}
190 // picky about only supporting known line table
192 return DecodeError{"line", hdrOffset, fmt.Sprintf("unknown line table version %d", r.version)}
217 return DecodeError{"line", hdrOffset, "invalid maximum operations per instruction: 0"}
220 return DecodeError{"line", hdrOffset, "invalid line range: 0"}
236 return DecodeError{"line", hdrOffset, fmt.Sprintf("opcode %d expected to have length %d, but has length %d", i, known, length)}
288 return false, DecodeError{"line", off, "directory index too large"}
309 // Next sets *entry to the next row in this line table and moves to
310 // the next row. If there are no more entries and the line table is
314 // entry.Line may go forward or backward.
320 // Execute opcodes until we reach an opcode that emits a line
355 // emits a row in the line table, this updates *entry and returns
365 r.state.Line += lineDelta
390 r.buf.err = DecodeError{"line", startOff, "malformed DW_LNE_define_file operation"}
414 r.state.Line += int(r.buf.int())
471 // A LineReaderPos represents a position in a line table.
473 // off is the current offset in the DWARF line section.
483 // Tell returns the current position in the line table.
488 // Seek restores the line table reader to a position returned by Tell.
491 // line table.
500 // Reset repositions the line table reader at the beginning of the
501 // line table.
503 // Reset buffer to the line number program offset.
510 // Reset line number program state.
522 Line: 1,
536 // seek PC is not covered by any entry in the line table.
540 // the reader on the next entry in the line table. If necessary, this
543 // If pc is not covered by any entry in this line table, SeekPC
547 // Note that DWARF line tables only permit sequential, forward scans.
549 // line table. If the caller wishes to do repeated fast PC lookups, it
550 // should build an appropriate index of the line table.