Namespace for stack‐trace capture, printing, and configuration utilities.

Types

Name

Description

ObjectFileFormat

This struct is named ObjectFileFormat for historical reasons, what it really determines is resolving strategy. Linux, for example, can be resolved using either the Elf or Dladdr policies. We choose Elf for linux because that mode of resolving yields more information.

ResolverImpl

Resolver_FileHelper

This class provides a low‐level file utility functions for Resolver<Elf>. This class contains the file descriptor of current object file. Note that the file is opened readonly, and all reads specify the offset, so the offset of the file descriptor is not considered part of the state of this object.

StackTrace

This value‐semantic class describes a function‐call stack, represented as a sequence of randomly accessible StackTraceFrame objects, each of which represents one function call on the stack. Note that if no allocator is supplied at construction, an owned bdlma::HeapBypassAllocator object is used to supply memory.

StackTraceConfigurationUtil

This struct provides a namespace for functions that configure the behavior of stack traces performed by balst.

StackTraceFrame

This simply constrained (value‐semantic) attribute class describes a call frame created on the execution stack when a parent function calls a child function. Supplementary predicate methods indicate whether a given attribute value is considered "unknown". See the section for infromation on the class attributes. Note that the class invariants are identically the constraints on the individual attributes.

StackTracePrintUtil

This struct serves as a namespace for static methods that perform and print a description of a stack trace.

StackTracePrintUtil_Test

This struct is not intended for use by clients of this component; it exists only for testing purposes.

StackTracePrinter

This class defines an object that, if streamed to a bsl::ostream, will output a stack trace to that stream.

StackTraceTestAllocator

This class defines a concrete "test" allocator mechanism that implements the bdlma::ManagedAllocator protocol, and provides instrumentation to track the set of all blocks allocated by this allocator that have yet to be freed. At any time it can produce a report about such blocks, listing for each place that any unfreed blocks were allocated * the number of unfreed blocks allocated at that place * the stack trace at that place The allocator will also detect redundant frees of the same block, and frees by the wrong allocator. The client can choose whether such violations are handled by a core dump, or merely a report being written.

StackTraceUtil

This struct serves as a namespace for a collection of functions that are useful for initializing and printing a stack‐trace object.

Functions

Name

Description

swap

Exchange the values of the specified a and b objects. This function provides the no‐throw exception‐safety guarantee if the two objects were created with the same allocator and the basic guarantee otherwise.

operator<<

Stream insertion operators

operator==

Equality operators

operator!=

Inequality operators

Created with MrDocs