[][src]Struct gimli::read::LineRow

pub struct LineRow { /* fields omitted */ }

A row in the line number program's resulting matrix.

Each row is a copy of the registers of the state machine, as defined in section 6.2.2.

Methods

impl LineRow[src]

pub fn new<R: Reader>(header: &LineProgramHeader<R>) -> Self[src]

Create a line number row in the initial state for the given program.

pub fn address(&self) -> u64[src]

"The program-counter value corresponding to a machine instruction generated by the compiler."

pub fn op_index(&self) -> u64[src]

An unsigned integer representing the index of an operation within a VLIW instruction. The index of the first operation is 0. For non-VLIW architectures, this register will always be 0.

The address and op_index registers, taken together, form an operation pointer that can reference any individual operation with the instruction stream.

pub fn file_index(&self) -> u64[src]

"An unsigned integer indicating the identity of the source file corresponding to a machine instruction."

pub fn file<'header, R: Reader>(
    &self,
    header: &'header LineProgramHeader<R>
) -> Option<&'header FileEntry<R>>
[src]

The source file corresponding to the current machine instruction.

pub fn line(&self) -> Option<u64>[src]

"An unsigned integer indicating a source line number. Lines are numbered beginning at 1. The compiler may emit the value 0 in cases where an instruction cannot be attributed to any source line."

pub fn column(&self) -> ColumnType[src]

"An unsigned integer indicating a column number within a source line. Columns are numbered beginning at 1. The value 0 is reserved to indicate that a statement begins at the “left edge” of the line."

pub fn is_stmt(&self) -> bool[src]

"A boolean indicating that the current instruction is a recommended breakpoint location. A recommended breakpoint location is intended to “represent” a line, a statement and/or a semantically distinct subpart of a statement."

pub fn basic_block(&self) -> bool[src]

"A boolean indicating that the current instruction is the beginning of a basic block."

pub fn end_sequence(&self) -> bool[src]

"A boolean indicating that the current address is that of the first byte after the end of a sequence of target machine instructions. end_sequence terminates a sequence of lines; therefore other information in the same row is not meaningful."

pub fn prologue_end(&self) -> bool[src]

"A boolean indicating that the current address is one (of possibly many) where execution should be suspended for an entry breakpoint of a function."

pub fn epilogue_begin(&self) -> bool[src]

"A boolean indicating that the current address is one (of possibly many) where execution should be suspended for an exit breakpoint of a function."

pub fn isa(&self) -> u64[src]

Tag for the current instruction set architecture.

An unsigned integer whose value encodes the applicable instruction set architecture for the current instruction.

The encoding of instruction sets should be shared by all users of a given architecture. It is recommended that this encoding be defined by the ABI authoring committee for each architecture.

pub fn discriminator(&self) -> u64[src]

"An unsigned integer identifying the block to which the current instruction belongs. Discriminator values are assigned arbitrarily by the DWARF producer and serve to distinguish among multiple blocks that may all be associated with the same source file, line, and column. Where only one block exists for a given source position, the discriminator value should be zero."

pub fn execute<R, Program>(
    &mut self,
    instruction: LineInstruction<R>,
    program: &mut Program
) -> bool where
    Program: LineProgram<R>,
    R: Reader
[src]

Execute the given instruction, and return true if a new row in the line number matrix needs to be generated.

Unknown opcodes are treated as no-ops.

pub fn reset<R: Reader>(&mut self, header: &LineProgramHeader<R>)[src]

Perform any reset that was required after copying the previous row.

Trait Implementations

impl Clone for LineRow[src]

impl Copy for LineRow[src]

impl Debug for LineRow[src]

impl Eq for LineRow[src]

impl PartialEq<LineRow> for LineRow[src]

impl StructuralEq for LineRow[src]

impl StructuralPartialEq for LineRow[src]

Auto Trait Implementations

impl RefUnwindSafe for LineRow

impl Send for LineRow

impl Sync for LineRow

impl Unpin for LineRow

impl UnwindSafe for LineRow

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.