pub struct LineProgram {
    pub file_has_timestamp: bool,
    pub file_has_size: bool,
    pub file_has_md5: bool,
    /* private fields */
}
Expand description

A line number program.

Fields

file_has_timestamp: bool

True if the file entries may have valid timestamps.

Entries may still have a timestamp of 0 even if this is set. For version <= 4, this is ignored. For version 5, this controls whether to emit DW_LNCT_timestamp.

file_has_size: bool

True if the file entries may have valid sizes.

Entries may still have a size of 0 even if this is set. For version <= 4, this is ignored. For version 5, this controls whether to emit DW_LNCT_size.

file_has_md5: bool

True if the file entries have valid MD5 checksums.

For version <= 4, this is ignored. For version 5, this controls whether to emit DW_LNCT_MD5.

Implementations

Create a line number program by reading the data from the given program.

Return the program and a mapping from file index to FileId.

Create a new LineProgram.

comp_dir defines the working directory of the compilation unit, and must be the same as the DW_AT_comp_dir attribute of the compilation unit DIE.

comp_file and comp_file_info define the primary source file of the compilation unit and must be the same as the DW_AT_name attribute of the compilation unit DIE.

Panics

Panics if line_encoding.line_base > 0.

Panics if line_encoding.line_base + line_encoding.line_range <= 0.

Panics if comp_dir is empty or contains a null byte.

Panics if comp_file is empty or contains a null byte.

Create a new LineProgram with no fields set.

This can be used when the LineProgram will not be used.

You should not attempt to add files or line instructions to this line program, or write it to the .debug_line section.

Return true if this line program was created with LineProgram::none().

Return the encoding parameters for this line program.

Return the DWARF version for this line program.

Return the address size in bytes for this line program.

Return the DWARF format for this line program.

Return the id for the working directory of the compilation unit.

Add a directory entry and return its id.

If the directory already exists, then return the id of the existing entry.

If the path is relative, then the directory is located relative to the working directory of the compilation unit.

Panics

Panics if directory is empty or contains a null byte.

Get a reference to a directory entry.

Panics

Panics if id is invalid.

Add a file entry and return its id.

If the file already exists, then return the id of the existing entry.

If the file path is relative, then the file is located relative to the directory. Otherwise the directory is meaningless, but it is still used as a key for file entries.

If info is None, then new entries are assigned default information, and existing entries are unmodified.

If info is not None, then it is always assigned to the entry, even if the entry already exists.

Panics

Panics if ‘file’ is empty or contains a null byte.

Get a reference to a file entry.

Panics

Panics if id is invalid.

Get a reference to the info for a file entry.

Panics

Panics if id is invalid.

Get a mutable reference to the info for a file entry.

Panics

Panics if id is invalid.

Begin a new sequence and set its base address.

Panics

Panics if a sequence has already begun.

End the sequence, and reset the row to its default values.

Only the address_offset and op_index` fields of the current row are used.

Panics

Panics if a sequence has not begun.

Return true if a sequence has begun.

Returns a reference to the data for the current row.

Generates the line number information instructions for the current row.

After the instructions are generated, it sets discriminator to 0, and sets basic_block, prologue_end, and epilogue_begin to false.

Panics

Panics if a sequence has not begun. Panics if the address_offset decreases.

Returns true if the line number program has no instructions.

Does not check the file or directory entries.

Write the line number program to the given section.

Panics

Panics if self.is_none().

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.