pub struct DebugLine<R> { /* private fields */ }
Expand description

The DebugLine struct contains the source location to instruction mapping found in the .debug_line section.

Implementations

Construct a new DebugLine instance from the data in the .debug_line section.

It is the caller’s responsibility to read the .debug_line section and present it as a &[u8] slice. That means using some ELF loader on Linux, a Mach-O loader on OSX, etc.

use gimli::{DebugLine, LittleEndian};

let debug_line = DebugLine::new(read_debug_line_section_somehow(), LittleEndian);

Parse the line number program whose header is at the given offset in the .debug_line section.

The address_size must match the compilation unit that the lines apply to. The comp_dir should be from the DW_AT_comp_dir attribute of the compilation unit. The comp_name should be from the DW_AT_name attribute of the compilation unit.

use gimli::{DebugLine, DebugLineOffset, IncompleteLineProgram, EndianSlice, LittleEndian};

let debug_line = DebugLine::new(read_debug_line_section_somehow(), LittleEndian);

// In a real example, we'd grab the offset via a compilation unit
// entry's `DW_AT_stmt_list` attribute, and the address size from that
// unit directly.
let offset = DebugLineOffset(0);
let address_size = 8;

let program = debug_line.program(offset, address_size, None, None)
    .expect("should have found a header at that offset, and parsed it OK");

Create a DebugLine section that references the data in self.

This is useful when R implements Reader but T does not.

Example Usage
// Read the DWARF section into a `Vec` with whatever object loader you're using.
let owned_section: gimli::DebugLine<Vec<u8>> = load_section();
// Create a reference to the DWARF section.
let section = owned_section.borrow(|section| {
    gimli::EndianSlice::new(&section, gimli::LittleEndian)
});

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

Returns the “default value” for a type. Read more

Performs the conversion.

Returns the section id for this type.

Returns the Reader for this section.

Returns the ELF section name for this type.

Returns the ELF section name (if any) for this type when used in a dwo file. Read more

Try to load the section using the given loader function.

Returns the Reader for this section.

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

Performs the conversion.

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.