8#ifndef INCLUDED_BALST_STACKTRACEFRAME
9#define INCLUDED_BALST_STACKTRACEFRAME
185#include <balscm_version.h>
197#include <bsl_cstddef.h>
198#include <bsl_iosfwd.h>
199#include <bsl_string.h>
221 const void *d_address;
240 bsl::size_t d_offsetFromSymbol;
452 bsl::ostream&
print(bsl::ostream& stream,
454 int spacesPerLevel = 4)
const;
503, d_libraryFileName(basicAllocator)
505, d_mangledSymbolName(basicAllocator)
506, d_offsetFromSymbol((
bsl::size_t)-1)
507, d_sourceFileName(basicAllocator)
508, d_symbolName(basicAllocator)
517 bsl::size_t offsetFromSymbol,
522, d_libraryFileName(libraryFileName.begin(),
523 libraryFileName.end(),
525, d_lineNumber(lineNumber)
526, d_mangledSymbolName(mangledSymbolName.begin(),
527 mangledSymbolName.end(),
529, d_offsetFromSymbol(offsetFromSymbol)
530, d_sourceFileName(sourceFileName.begin(),
531 sourceFileName.end(),
533, d_symbolName(symbolName.begin(), symbolName.end(), basicAllocator)
545: d_address(original.d_address)
546, d_libraryFileName(original.d_libraryFileName, basicAllocator)
547, d_lineNumber(original.d_lineNumber)
548, d_mangledSymbolName(original.d_mangledSymbolName, basicAllocator)
549, d_offsetFromSymbol(original.d_offsetFromSymbol)
550, d_sourceFileName(original.d_sourceFileName, basicAllocator)
551, d_symbolName(original.d_symbolName, basicAllocator)
593 d_lineNumber = value;
607 d_offsetFromSymbol = value;
636 return d_libraryFileName;
648 return d_offsetFromSymbol;
654 return d_mangledSymbolName;
660 return d_sourceFileName;
673 return 0 != d_address;
679 return !d_libraryFileName.
empty();
685 return d_lineNumber > 0;
691 return !d_mangledSymbolName.
empty();
697 return (bsl::size_t)-1 != d_offsetFromSymbol;
703 return !d_sourceFileName.
empty();
709 return !d_symbolName.
empty();
726 return lhs.address() == rhs.address()
727 && lhs.libraryFileName() == rhs.libraryFileName()
728 && lhs.lineNumber() == rhs.lineNumber()
729 && lhs.mangledSymbolName() == rhs.mangledSymbolName()
730 && lhs.offsetFromSymbol() == rhs.offsetFromSymbol()
731 && lhs.sourceFileName() == rhs.sourceFileName()
732 && lhs.symbolName() == rhs.symbolName();
738 return lhs.address() !=
rhs.address()
739 ||
lhs.libraryFileName() !=
rhs.libraryFileName()
740 ||
lhs.lineNumber() !=
rhs.lineNumber()
741 ||
lhs.mangledSymbolName() !=
rhs.mangledSymbolName()
742 ||
lhs.offsetFromSymbol() !=
rhs.offsetFromSymbol()
743 ||
lhs.sourceFileName() !=
rhs.sourceFileName()
744 ||
lhs.symbolName() !=
rhs.symbolName();
Definition balst_stacktraceframe.h:217
BSLMF_NESTED_TRAIT_DECLARATION(StackTraceFrame, bslma::UsesBslmaAllocator)
void setLineNumber(int value)
Definition balst_stacktraceframe.h:589
int lineNumber() const
Definition balst_stacktraceframe.h:640
void swap(StackTraceFrame &other)
bool isLibraryFileNameKnown() const
Definition balst_stacktraceframe.h:677
const bsl::string & mangledSymbolName() const
Definition balst_stacktraceframe.h:652
void setOffsetFromSymbol(bsl::size_t value)
Definition balst_stacktraceframe.h:605
bool isAddressKnown() const
Definition balst_stacktraceframe.h:671
bool isSourceFileNameKnown() const
Definition balst_stacktraceframe.h:701
void setAddress(const void *value)
Definition balst_stacktraceframe.h:575
const bsl::string & libraryFileName() const
Definition balst_stacktraceframe.h:634
StackTraceFrame & operator=(const StackTraceFrame &rhs)
Definition balst_stacktraceframe.h:563
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
const bsl::string & symbolName() const
Definition balst_stacktraceframe.h:664
void setSymbolName(const bsl::string_view &value)
Definition balst_stacktraceframe.h:619
void setMangledSymbolName(const bsl::string_view &value)
Definition balst_stacktraceframe.h:597
StackTraceFrame(bslma::Allocator *basicAllocator=0)
Definition balst_stacktraceframe.h:501
~StackTraceFrame()
Destroy this object.
Definition balst_stacktraceframe.h:556
const bsl::string & sourceFileName() const
Definition balst_stacktraceframe.h:658
bslma::Allocator * allocator() const
Definition balst_stacktraceframe.h:715
bool isMangledSymbolNameKnown() const
Definition balst_stacktraceframe.h:689
bsl::size_t offsetFromSymbol() const
Definition balst_stacktraceframe.h:646
bool isSymbolNameKnown() const
Definition balst_stacktraceframe.h:707
bool isLineNumberKnown() const
Definition balst_stacktraceframe.h:683
void setLibraryFileName(const bsl::string_view &value)
Definition balst_stacktraceframe.h:581
bool isOffsetFromSymbolKnown() const
Definition balst_stacktraceframe.h:695
void setSourceFileName(const bsl::string_view &value)
Definition balst_stacktraceframe.h:611
const void * address() const
Definition balst_stacktraceframe.h:628
Definition bslstl_stringview.h:471
BSLS_KEYWORD_CONSTEXPR const_iterator end() const BSLS_KEYWORD_NOEXCEPT
Return the past-the-end iterator for this view.
Definition bslstl_stringview.h:1848
BSLS_KEYWORD_CONSTEXPR const_pointer data() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_stringview.h:1988
BSLS_KEYWORD_CONSTEXPR const_iterator begin() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_stringview.h:1830
Definition bslstl_string.h:1252
basic_string & assign(const basic_string &replacement)
Definition bslstl_string.h:6347
allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
Return the allocator used by this string to supply memory.
Definition bslstl_string.h:7423
bool empty() const BSLS_KEYWORD_NOEXCEPT
Return true if this string has length 0, and false otherwise.
Definition bslstl_string.h:7331
CHAR_TYPE * data() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_string.h:7177
Definition bslma_allocator.h:545
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition balst_objectfileformat.h:152
bsl::ostream & operator<<(bsl::ostream &stream, const StackTrace &object)
bool operator==(const StackTrace &lhs, const StackTrace &rhs)
bool operator!=(const StackTrace &lhs, const StackTrace &rhs)
Definition bdlat_valuetypefunctions.h:939
ALLOCATOR const STRING_VIEW_LIKE_TYPE & rhs
Definition bslstl_string.h:3918
ALLOCATOR & lhs
Definition bslstl_string.h:3917
Definition bslma_usesbslmaallocator.h:344