Quick Links: |
#include <balst_stacktraceframe.h>
Public Member Functions | |
BSLMF_NESTED_TRAIT_DECLARATION (StackTraceFrame, bslma::UsesBslmaAllocator) | |
StackTraceFrame (bslma::Allocator *basicAllocator=0) | |
StackTraceFrame (const void *address, const bsl::string_view &libraryFileName, int lineNumber, const bsl::string_view &mangledSymbolName, bsl::size_t offsetFromSymbol, const bsl::string_view &sourceFileName, const bsl::string_view &symbolName, bslma::Allocator *basicAllocator=0) | |
StackTraceFrame (const StackTraceFrame &original, bslma::Allocator *basicAllocator=0) | |
~StackTraceFrame () | |
StackTraceFrame & | operator= (const StackTraceFrame &rhs) |
void | setAddress (const void *value) |
void | setLibraryFileName (const bsl::string_view &value) |
void | setLineNumber (int value) |
void | setMangledSymbolName (const bsl::string_view &value) |
void | setOffsetFromSymbol (bsl::size_t value) |
void | setSourceFileName (const bsl::string_view &value) |
void | setSymbolName (const bsl::string_view &value) |
void | swap (StackTraceFrame &other) |
const void * | address () const |
const bsl::string & | libraryFileName () const |
int | lineNumber () const |
const bsl::string & | mangledSymbolName () const |
bsl::size_t | offsetFromSymbol () const |
const bsl::string & | sourceFileName () const |
const bsl::string & | symbolName () const |
bool | isAddressKnown () const |
bool | isLibraryFileNameKnown () const |
bool | isLineNumberKnown () const |
bool | isMangledSymbolNameKnown () const |
bool | isOffsetFromSymbolKnown () const |
bool | isSourceFileNameKnown () const |
bool | isSymbolNameKnown () const |
bslma::Allocator * | allocator () const |
bsl::ostream & | print (bsl::ostream &stream, int level=0, int spacesPerLevel=4) const |
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 Attributes section under @DESCRIPTION in the component-level documentation. Note that the class invariants are identically the constraints on the individual attributes.
See Component balst_stacktraceframe
balst::StackTraceFrame::StackTraceFrame | ( | bslma::Allocator * | basicAllocator = 0 |
) | [explicit] |
Create a StackTraceFrame
object having the (default) attribute values:
address == 0 libraryFileName == "" lineNumber == -1 mangledSymbolName == "" offsetFromSymbol == (size_t)-1 sourceFileName == "" symbolName == ""
Optionally specify a basicAllocator
used to supply memory. If basicAllocator
is 0, the currently installed default allocator is used.
balst::StackTraceFrame::StackTraceFrame | ( | const void * | address, | |
const bsl::string_view & | libraryFileName, | |||
int | lineNumber, | |||
const bsl::string_view & | mangledSymbolName, | |||
bsl::size_t | offsetFromSymbol, | |||
const bsl::string_view & | sourceFileName, | |||
const bsl::string_view & | symbolName, | |||
bslma::Allocator * | basicAllocator = 0 | |||
) |
Create a local time descriptor object having the specified address
, libraryFileName
, lineNumber
, mangledSymbolName
, offsetFromSymbol
, sourceFileName
, and symbolName
attribute values. Optionally specify a basicAllocator
used to supply memory. If basicAllocator
is 0, the currently installed default allocator is used. The behavior is undefined unless -1 <= lineNumber
.
balst::StackTraceFrame::StackTraceFrame | ( | const StackTraceFrame & | original, | |
bslma::Allocator * | basicAllocator = 0 | |||
) |
Create a StackTraceFrame
object having the same value as the specified original
object. Optionally specify a basicAllocator
used to supply memory. If basicAllocator
is 0, the currently installed default allocator is used.
balst::StackTraceFrame::~StackTraceFrame | ( | ) |
Destroy this object.
balst::StackTraceFrame::BSLMF_NESTED_TRAIT_DECLARATION | ( | StackTraceFrame | , | |
bslma::UsesBslmaAllocator | ||||
) |
StackTraceFrame& balst::StackTraceFrame::operator= | ( | const StackTraceFrame & | rhs | ) |
Assign to this object the value of the specified rhs
object, and return a reference providing modifiable access to this object.
void balst::StackTraceFrame::setAddress | ( | const void * | value | ) |
Set the address
attribute of this object to the specified value
. Note that the value (void *)0)
indicates that address
is "unknown".
void balst::StackTraceFrame::setLibraryFileName | ( | const bsl::string_view & | value | ) |
Set the libraryFileName
attribute of this object to the specified value
. Note that the empty string indicates the libraryFileName
is "unknown".
void balst::StackTraceFrame::setLineNumber | ( | int | value | ) |
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".
void balst::StackTraceFrame::setMangledSymbolName | ( | const bsl::string_view & | value | ) |
Set the mangledSymbolName
attribute of this object to the specified value
. Note that the empty string indicates that the mangledSymbolName
is "unknown".
void balst::StackTraceFrame::setOffsetFromSymbol | ( | bsl::size_t | value | ) |
Set the offsetFromSymbol
attribute of this object to the specified value
. Note that the value (bsl::size_t)-1
indicates that offsetFromSymbol
is "unknown".
void balst::StackTraceFrame::setSourceFileName | ( | const bsl::string_view & | value | ) |
Set the sourceFileName
attribute of this object to the specified value
. Note that the empty string indicates that sourceFileName
is "unknown".
void balst::StackTraceFrame::setSymbolName | ( | const bsl::string_view & | value | ) |
Set the symbolName
attribute of this object to the specified value
. Note that the empty string indicates that symbolName
is "unknown".
void balst::StackTraceFrame::swap | ( | StackTraceFrame & | other | ) |
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
.
const void* balst::StackTraceFrame::address | ( | ) | const |
Return the value of address
attribute of this object. Note that (void *)0
indicates that the address
is "unknown".
const bsl::string& balst::StackTraceFrame::libraryFileName | ( | ) | const |
Return a reference providing non-modifiable access to the libraryFileName
attribute of this object. Note the empty string indicates that the libraryFileName
is "unknown".
int balst::StackTraceFrame::lineNumber | ( | ) | const |
Return the value of the lineNumber
attribute of this object. Note that -1 indicates that lineNumber
is "unknown".
const bsl::string& balst::StackTraceFrame::mangledSymbolName | ( | ) | const |
Return a reference providing non-modifiable access to the mangledSymbolName
attribute of this object. Note that the empty string indicates that mangledSymbolName
is "unknown".
bsl::size_t balst::StackTraceFrame::offsetFromSymbol | ( | ) | const |
Return the value of the offsetFromSymbol
attribute of this object. Note that (bsl::size_t)-1
indicates that lineNumber
is not known.
const bsl::string& balst::StackTraceFrame::sourceFileName | ( | ) | const |
Return a reference providing non-modifiable access to the sourceFileName
attribute of this object. Note that the empty string indicates that sourceFileName
is "unknown".
const bsl::string& balst::StackTraceFrame::symbolName | ( | ) | const |
Return a reference providing non-modifiable access to the symbolName
attribute of this object. Note that the empty string indicates that symbolName
is "unknown".
bool balst::StackTraceFrame::isAddressKnown | ( | ) | const |
Return true
if the setAddress
attribute of this object is not the "unknown" value for that attribute, and false
otherwise.
bool balst::StackTraceFrame::isLibraryFileNameKnown | ( | ) | const |
Return true
if the libraryFileName
attribute of this object is not the "unknown" value for that attribute, and false
otherwise.
bool balst::StackTraceFrame::isLineNumberKnown | ( | ) | const |
Return true
if the lineNumber
attribute of this object is not the "unknown" value for that attribute, and false
otherwise.
bool balst::StackTraceFrame::isMangledSymbolNameKnown | ( | ) | const |
Return true
if the mangledSymbolName
attribute of this object is not the "unknown" value for that attribute, and false
otherwise.
bool balst::StackTraceFrame::isOffsetFromSymbolKnown | ( | ) | const |
Return true
if the offsetFromSymbol
attribute of this object is not the "unknown" value for that attribute, and false
otherwise.
bool balst::StackTraceFrame::isSourceFileNameKnown | ( | ) | const |
Return true
if the sourceFileName
attribute of this object is not the "unknown" value for that attribute, and false
otherwise.
bool balst::StackTraceFrame::isSymbolNameKnown | ( | ) | const |
Return true
if the symbolName
attribute of this object is not the "unknown" value for that attribute, and false
otherwise.
bslma::Allocator* balst::StackTraceFrame::allocator | ( | ) | const |
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.
bsl::ostream& balst::StackTraceFrame::print | ( | bsl::ostream & | stream, | |
int | level = 0 , |
|||
int | spacesPerLevel = 4 | |||
) | const |
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.