Crate gimli

source · []
Expand description

gimli is a library for reading and writing the DWARF debugging format.

See the read and write modules for examples and API documentation.

Cargo Features

Cargo features that can be enabled with gimli:

  • std: Enabled by default. Use the std library. Disabling this feature allows using gimli in embedded environments that do not have access to std. Note that even when std is disabled, gimli still requires an implementation of the alloc crate.

  • read: Enabled by default. Enables the read module. Use of std is optional.

  • write: Enabled by default. Enables the write module. Always uses the std library.

Re-exports

pub use crate::constants::*;
pub use crate::read::*;

Modules

Constant definitions.

Read and write DWARF’s “Little Endian Base 128” (LEB128) variable length integer encoding.

Read DWARF debugging information.

Write DWARF debugging information.

Structs

ARM 64-bit (AArch64) architecture specific definitions.

ARM architecture specific definitions.

Big endian byte order.

An offset into the .debug_abbrev section.

An offset to a set of entries in the .debug_addr section.

An index into a set of addresses in the .debug_addr section.

An offset into the .debug_aranges section.

An offset into the .debug_frame section.

An offset into the .debug_info section.

An offset into the .debug_line section.

An offset into the .debug_line_str section.

An offset to a set of location list offsets in the .debug_loclists section.

An index into a set of location list offsets in the .debug_loclists section.

An offset into the .debug_macinfo section.

An offset into the .debug_macro section.

An offset to a set of range list offsets in the .debug_rnglists section.

An index into a set of range list offsets in the .debug_rnglists section.

An offset into the .debug_str section.

An offset to a set of entries in the .debug_str_offsets section.

An index into a set of entries in the .debug_str_offsets section.

A type signature as used in the .debug_types section.

An offset into the .debug_types section.

An optionally-provided implementation-defined compilation unit ID to enable split DWARF and linking a split compilation unit back together.

An offset into the .eh_frame section.

Encoding parameters that are commonly used for multiple DWARF sections.

Encoding parameters for a line number program.

Little endian byte order.

An offset into either the .debug_loc section or the .debug_loclists section, depending on the version of the unit the offset was contained in.

An offset into either the .debug_ranges section or the .debug_rnglists section, depending on the version of the unit the offset was contained in.

An offset into either the .debug_ranges section or the .debug_rnglists section, depending on the version of the unit the offset was contained in.

A DWARF register number.

RISC-V architecture specific definitions.

Intel i386 architecture specific definitions.

AMD64 architecture specific definitions.

Enums

The “type” of file with DWARF debugging information. This determines, among other things, which files DWARF sections should be loaded from.

Whether the format of a compilation unit is 32- or 64-bit.

Byte order that is selectable at runtime.

An identifier for a DWARF section.

An offset into the .debug_info or .debug_types sections.

Traits

An unsafe marker trait for types where clones deref to the same address. This has all the requirements of StableDeref, and additionally requires that after calling clone(), both the old and new value deref to the same address. For example, Rc and Arc implement CloneStableDeref, but Box and Vec do not.

A trait describing the endianity of some buffer.

An unsafe marker trait for types that deref to a stable address, even when moved. For example, this is implemented by Box, Vec, Rc, Arc and String, among others. Even when a Box is moved, the underlying storage remains at a fixed location.

Type Definitions

The native endianity for the target platform.