[#BloombergLP-balst-StackTraceFrame]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/balst.adoc[balst]::StackTraceFrame
:relfileprefix: ../../
:mrdocs:

This simply constrained (value&hyphen;semantic) attribute class describes a call frame created on the execution stack when a _parent_ function calls a _child_ function&period; Supplementary predicate methods indicate whether a given attribute value is considered &quot;unknown&quot;&period; See the  section for infromation on the class attributes&period; Note that the class invariants are identically the constraints on the individual attributes&period;

== Synopsis

Declared in `&lt;balst&lowbar;stacktraceframe&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class StackTraceFrame;
----

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balst/StackTraceFrame/2constructor-0b5.adoc[`StackTraceFrame`]         [.small]#[constructor]#
| Constructors
| xref:BloombergLP/balst/StackTraceFrame/2destructor.adoc[`&#126;StackTraceFrame`] [.small]#[destructor]#
| Destroy this object&period;
| xref:BloombergLP/balst/StackTraceFrame/operator_assign.adoc[`operator&equals;`] 
| Assign to this object the value of the specified `rhs` object, and return a reference providing modifiable access to this object&period;
| xref:BloombergLP/balst/StackTraceFrame/address.adoc[`address`] 
| Return the value of `address` attribute of this object&period; Note that `(void &ast;)0` indicates that the `address` is &quot;unknown&quot;&period;
| xref:BloombergLP/balst/StackTraceFrame/allocator.adoc[`allocator`] 
| Return the allocator used by this object to supply memory&period; Note that if no allocator was supplied at construction the currently installed default allocator is used&period;
| xref:BloombergLP/balst/StackTraceFrame/isAddressKnown.adoc[`isAddressKnown`] 
| Return `true` if the `setAddress` attribute of this object is not the &quot;unknown&quot; value for that attribute, and `false` otherwise&period;
| xref:BloombergLP/balst/StackTraceFrame/isLibraryFileNameKnown.adoc[`isLibraryFileNameKnown`] 
| Return `true` if the `libraryFileName` attribute of this object is not the &quot;unknown&quot; value for that attribute, and `false` otherwise&period;
| xref:BloombergLP/balst/StackTraceFrame/isLineNumberKnown.adoc[`isLineNumberKnown`] 
| Return `true` if the `lineNumber` attribute of this object is not the &quot;unknown&quot; value for that attribute, and `false` otherwise&period;
| xref:BloombergLP/balst/StackTraceFrame/isMangledSymbolNameKnown.adoc[`isMangledSymbolNameKnown`] 
| Return `true` if the `mangledSymbolName` attribute of this object is not the &quot;unknown&quot; value for that attribute, and `false` otherwise&period;
| xref:BloombergLP/balst/StackTraceFrame/isOffsetFromSymbolKnown.adoc[`isOffsetFromSymbolKnown`] 
| Return `true` if the `offsetFromSymbol` attribute of this object is not the &quot;unknown&quot; value for that attribute, and `false` otherwise&period;
| xref:BloombergLP/balst/StackTraceFrame/isSourceFileNameKnown.adoc[`isSourceFileNameKnown`] 
| Return `true` if the `sourceFileName` attribute of this object is not the &quot;unknown&quot; value for that attribute, and `false` otherwise&period;
| xref:BloombergLP/balst/StackTraceFrame/isSymbolNameKnown.adoc[`isSymbolNameKnown`] 
| Return `true` if the `symbolName` attribute of this object is not the &quot;unknown&quot; value for that attribute, and `false` otherwise&period;
| xref:BloombergLP/balst/StackTraceFrame/libraryFileName.adoc[`libraryFileName`] 
| Return a reference providing non&hyphen;modifiable access to the `libraryFileName` attribute of this object&period; Note the empty string indicates that the `libraryFileName` is &quot;unknown&quot;&period;
| xref:BloombergLP/balst/StackTraceFrame/lineNumber.adoc[`lineNumber`] 
| Return the value of the `lineNumber` attribute of this object&period; Note that &hyphen;1 indicates that `lineNumber` is &quot;unknown&quot;&period;
| xref:BloombergLP/balst/StackTraceFrame/mangledSymbolName.adoc[`mangledSymbolName`] 
| Return a reference providing non&hyphen;modifiable access to the `mangledSymbolName` attribute of this object&period; Note that the empty string indicates that `mangledSymbolName` is &quot;unknown&quot;&period;
| xref:BloombergLP/balst/StackTraceFrame/offsetFromSymbol.adoc[`offsetFromSymbol`] 
| Return the value of the `offsetFromSymbol` attribute of this object&period; Note that `(bsl&colon;&colon;size&lowbar;t)&hyphen;1` indicates that `lineNumber` is not known&period;
| xref:BloombergLP/balst/StackTraceFrame/print.adoc[`print`] 
| Write the value of this object to the specified output `stream` in a human&hyphen;readable format, and return a reference to `stream`&period; Optionally specify an initial indentation `level`, whose absolute value is incremented recursively for nested objects&period; If `level` is specified, optionally specify `spacesPerLevel`, whose absolute value indicates the number of spaces per indentation level for this and all of its nested objects&period; If `level` is negative, suppress indentation of the first line&period; If `spacesPerLevel` is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by `level`)&period; If `stream` is not valid on entry, this operation has no effect&period; Note that the format is not fully specified, and can change without notice&period;
| xref:BloombergLP/balst/StackTraceFrame/setAddress.adoc[`setAddress`] 
| Set the `address` attribute of this object to the specified `value`&period; Note that the value `(void &ast;)0)` indicates that `address` is &quot;unknown&quot;&period;
| xref:BloombergLP/balst/StackTraceFrame/setLibraryFileName.adoc[`setLibraryFileName`] 
| Set the `libraryFileName` attribute of this object to the specified `value`&period; Note that the empty string indicates the `libraryFileName` is &quot;unknown&quot;&period;
| xref:BloombergLP/balst/StackTraceFrame/setLineNumber.adoc[`setLineNumber`] 
| Set the `lineNumber` attribute of this object to the specified `value`&period; The behavior is undefined unless `&hyphen;1 &lt;&equals; value`&period; Note that the value &hyphen;1 indicates the `lineNumber` is &quot;unknown&quot;&period;
| xref:BloombergLP/balst/StackTraceFrame/setMangledSymbolName.adoc[`setMangledSymbolName`] 
| Set the `mangledSymbolName` attribute of this object to the specified `value`&period; Note that the empty string indicates that the `mangledSymbolName` is &quot;unknown&quot;&period;
| xref:BloombergLP/balst/StackTraceFrame/setOffsetFromSymbol.adoc[`setOffsetFromSymbol`] 
| Set the `offsetFromSymbol` attribute of this object to the specified `value`&period; Note that the value `(bsl&colon;&colon;size&lowbar;t)&hyphen;1` indicates that `offsetFromSymbol` is &quot;unknown&quot;&period;
| xref:BloombergLP/balst/StackTraceFrame/setSourceFileName.adoc[`setSourceFileName`] 
| Set the `sourceFileName` attribute of this object to the specified `value`&period; Note that the empty string indicates that `sourceFileName` is &quot;unknown&quot;&period;
| xref:BloombergLP/balst/StackTraceFrame/setSymbolName.adoc[`setSymbolName`] 
| Set the `symbolName` attribute of this object to the specified `value`&period; Note that the empty string indicates that `symbolName` is &quot;unknown&quot;&period;
| xref:BloombergLP/balst/StackTraceFrame/sourceFileName.adoc[`sourceFileName`] 
| Return a reference providing non&hyphen;modifiable access to the `sourceFileName` attribute of this object&period; Note that the empty string indicates that `sourceFileName` is &quot;unknown&quot;&period;
| xref:BloombergLP/balst/StackTraceFrame/swap.adoc[`swap`] 
| Efficiently exchange the value of this object with the value of the specified `other` object&period; This method provides the no&hyphen;throw exception&hyphen;safety guarantee&period; The behavior is undefined unless this object was created with the same allocator as `other`&period;
| xref:BloombergLP/balst/StackTraceFrame/symbolName.adoc[`symbolName`] 
| Return a reference providing non&hyphen;modifiable access to the `symbolName` attribute of this object&period; Note that the empty string indicates that `symbolName` is &quot;unknown&quot;&period;
| xref:BloombergLP/balst/StackTraceFrame/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;StackTraceFrame, UsesBslmaAllocator&gt;`] 
| `StackTraceFrame` uses a `bslma` allocator for its string members&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balst/operator_not_eq-08a.adoc[`operator!&equals;`]
| Return `true` if the specified `lhs` and `rhs` objects do not have the same value, and `false` otherwise&period; Two `StackTraceFrame` objects do not have the same value if the corresponding values of their `address`, `libraryFileName`, `lineNumber`, `mangledSymbolName`, `offsetFromSymbol`, `sourceFileName`, or `symbolName` attributes are the not same&period;
| xref:BloombergLP/balst/operator_eq-0c.adoc[`operator&equals;&equals;`]
| Return `true` if the specified `lhs` and `rhs` objects have the same value, and `false` otherwise&period; Two `StackTraceFrame` objects have the same value if the corresponding values of their `address`, `libraryFileName`, `lineNumber`, `mangledSymbolName`, `offsetFromSymbol`, `sourceFileName`, and `symbolName` attributes are the same&period;
| xref:BloombergLP/balst/swap-034.adoc[`swap`]
| Exchange the values of the specified `a` and `b` objects&period; This function provides the no&hyphen;throw exception&hyphen;safety guarantee if the two objects were created with the same allocator and the basic guarantee otherwise&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
