Struct gimli::read::LineRow [−][src]
pub struct LineRow { /* fields omitted */ }
Expand description
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.
Implementations
Create a line number row in the initial state for the given program.
“The program-counter value corresponding to a machine instruction generated by the compiler.”
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.
“An unsigned integer indicating the identity of the source file corresponding to a machine instruction.”
The source file corresponding to the current machine instruction.
“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.”
Line number values of 0 are represented as None
.
“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.”
“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.”
“A boolean indicating that the current instruction is the beginning of a basic block.”
“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.”
“A boolean indicating that the current address is one (of possibly many) where execution should be suspended for an entry breakpoint of a function.”
“A boolean indicating that the current address is one (of possibly many) where execution should be suspended for an exit breakpoint of a function.”
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.
“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,
pub fn execute<R, Program>(
&mut self,
instruction: LineInstruction<R>,
program: &mut Program
) -> bool where
Program: LineProgram<R>,
R: Reader,
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.
Perform any reset that was required after copying the previous row.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for LineRow
impl UnwindSafe for LineRow
Blanket Implementations
Mutably borrows from an owned value. Read more