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.
Declared in <balst_stacktraceframe.h>
class StackTraceFrame;
| Name | Description |
|---|---|
StackTraceFrame [constructor] | Constructors |
~StackTraceFrame [destructor] | Destroy this object. |
operator= | Assign to this object the value of the specified rhs object, and return a reference providing modifiable access to this object. |
address | Return the value of address attribute of this object. Note that (void *)0 indicates that the address is "unknown". |
allocator | Return the allocator used by this object to supply memory. Note that if no allocator was supplied at construction the currently installed default allocator is used. |
isAddressKnown | Return true if the setAddress attribute of this object is not the "unknown" value for that attribute, and false otherwise. |
isLibraryFileNameKnown | Return true if the libraryFileName attribute of this object is not the "unknown" value for that attribute, and false otherwise. |
isLineNumberKnown | Return true if the lineNumber attribute of this object is not the "unknown" value for that attribute, and false otherwise. |
isMangledSymbolNameKnown | Return true if the mangledSymbolName attribute of this object is not the "unknown" value for that attribute, and false otherwise. |
isOffsetFromSymbolKnown | Return true if the offsetFromSymbol attribute of this object is not the "unknown" value for that attribute, and false otherwise. |
isSourceFileNameKnown | Return true if the sourceFileName attribute of this object is not the "unknown" value for that attribute, and false otherwise. |
isSymbolNameKnown | Return true if the symbolName attribute of this object is not the "unknown" value for that attribute, and false otherwise. |
libraryFileName | Return a reference providing non-modifiable access to the libraryFileName attribute of this object. Note the empty string indicates that the libraryFileName is "unknown". |
lineNumber | Return the value of the lineNumber attribute of this object. Note that -1 indicates that lineNumber is "unknown". |
mangledSymbolName | Return a reference providing non-modifiable access to the mangledSymbolName attribute of this object. Note that the empty string indicates that mangledSymbolName is "unknown". |
offsetFromSymbol | Return the value of the offsetFromSymbol attribute of this object. Note that (bsl::size_t)-1 indicates that lineNumber is not known. |
print | Write the value of this object to the specified output stream in a human-readable format, and return a reference to stream. Optionally specify an initial indentation level, whose absolute value is incremented recursively for nested objects. 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. If level is negative, suppress indentation of the first line. If spacesPerLevel is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by level). If stream is not valid on entry, this operation has no effect. Note that the format is not fully specified, and can change without notice. |
setAddress | Set the address attribute of this object to the specified value. Note that the value (void *)0) indicates that address is "unknown". |
setLibraryFileName | Set the libraryFileName attribute of this object to the specified value. Note that the empty string indicates the libraryFileName is "unknown". |
setLineNumber | Set the lineNumber attribute of this object to the specified value. The behavior is undefined unless -1 <= value. Note that the value -1 indicates the lineNumber is "unknown". |
setMangledSymbolName | Set the mangledSymbolName attribute of this object to the specified value. Note that the empty string indicates that the mangledSymbolName is "unknown". |
setOffsetFromSymbol | Set the offsetFromSymbol attribute of this object to the specified value. Note that the value (bsl::size_t)-1 indicates that offsetFromSymbol is "unknown". |
setSourceFileName | Set the sourceFileName attribute of this object to the specified value. Note that the empty string indicates that sourceFileName is "unknown". |
setSymbolName | Set the symbolName attribute of this object to the specified value. Note that the empty string indicates that symbolName is "unknown". |
sourceFileName | Return a reference providing non-modifiable access to the sourceFileName attribute of this object. Note that the empty string indicates that sourceFileName is "unknown". |
swap | Efficiently exchange the value of this object with the value of the specified other object. This method provides the no-throw exception-safety guarantee. The behavior is undefined unless this object was created with the same allocator as other. |
symbolName | Return a reference providing non-modifiable access to the symbolName attribute of this object. Note that the empty string indicates that symbolName is "unknown". |
operator BloombergLP::bslmf::NestedTraitDeclaration<StackTraceFrame, UsesBslmaAllocator> | StackTraceFrame uses a bslma allocator for its string members. |
| Name | Description |
|---|---|
operator!= | Return true if the specified lhs and rhs objects do not have the same value, and false otherwise. 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. |
operator== | Return true if the specified lhs and rhs objects have the same value, and false otherwise. 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. |
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. |