[#BloombergLP-balst] = xref:BloombergLP.adoc[BloombergLP]::balst :relfileprefix: ../ :mrdocs: Namespace for stack‐trace capture, printing, and configuration utilities. == Types [cols="1,4"] |=== | Name| Description | xref:BloombergLP/balst/ObjectFileFormat.adoc[`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. | xref:BloombergLP/balst/ResolverImpl-0f.adoc[`ResolverImpl`] | | xref:BloombergLP/balst/Resolver_FileHelper.adoc[`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. | xref:BloombergLP/balst/StackTrace.adoc[`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. | xref:BloombergLP/balst/StackTraceConfigurationUtil.adoc[`StackTraceConfigurationUtil`] | This `struct` provides a namespace for functions that configure the behavior of stack traces performed by `balst`. | xref:BloombergLP/balst/StackTraceFrame.adoc[`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. | xref:BloombergLP/balst/StackTracePrintUtil.adoc[`StackTracePrintUtil`] | This `struct` serves as a namespace for static methods that perform and print a description of a stack trace. | xref:BloombergLP/balst/StackTracePrintUtil_Test.adoc[`StackTracePrintUtil_Test`] | This `struct` is not intended for use by clients of this component; it exists only for testing purposes. | xref:BloombergLP/balst/StackTracePrinter.adoc[`StackTracePrinter`] | This `class` defines an object that, if streamed to a `bsl::ostream`, will output a stack trace to that stream. | xref:BloombergLP/balst/StackTraceTestAllocator.adoc[`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. | xref:BloombergLP/balst/StackTraceUtil.adoc[`StackTraceUtil`] | This `struct` serves as a namespace for a collection of functions that are useful for initializing and printing a stack‐trace object. |=== == Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/balst/swap-0e.adoc[`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. | xref:BloombergLP/balst/operator_lshift-0e.adoc[`operator<<`] | Stream insertion operators | xref:BloombergLP/balst/operator_eq-00.adoc[`operator==`] | Equality operators | xref:BloombergLP/balst/operator_not_eq-0d.adoc[`operator!=`] | Inequality operators |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#