Crate symbolic_common[][src]

Expand description

Common functionality for symbolic.

This crate exposes a set of key types:

  • ByteView: Gives access to binary data in-memory or on the file system.
  • SelfCell: Allows to create self-referential types.
  • Name: A symbol name that can be demangled with the demangle feature.
  • InstructionInfo: A utility type for instruction pointer heuristics.
  • Functions and utilities to deal with paths from different platforms.

Features

  • serde (optional): Implements serde::Deserialize and serde::Serialize for all data types. In the symbolic crate, this feature is exposed via common-serde.

This module is part of the symbolic crate.

Structs

BreakpadFormat

Wrapper around DebugId for Breakpad formatting.

ByteView

A smart pointer for byte data.

CodeId

Unique platform-dependent identifier of code files.

DebugId

Unique identifier for debug information files and their debug information.

InstructionInfo

Helper to work with instruction addresses.

Name

The name of a potentially mangled symbol.

ParseCodeIdError

Indicates an error parsing a CodeId.

ParseDebugIdError

Indicates an error parsing a DebugId.

SelfCell

A container carrying a derived object alongside its owner.

UnknownArchError

An error returned for an invalid Arch.

UnknownLanguageError

An error returned for an invalid Language.

Uuid

A Universally Unique Identifier (UUID).

Enums

Arch

An enumeration of CPU architectures and variants.

CpuFamily

Represents a family of CPUs.

Language

A programming language declared in debugging information.

NameMangling

A Names mangling state.

Traits

AsSelf

Safe downcasting of dependent lifetime bounds on structs.

DSymPathExt

Extensions to Path for handling dSYM directories.

StableDeref

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.

Functions

clean_path

Simplifies paths by stripping redundant components.

join_path

Joins paths of various platforms.

shorten_path

Trims a path to a given length.

split_path

Splits off the last component of a path.

split_path_bytes

Splits off the last component of a path given as bytes.