|
NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
|
堆栈跟踪类 更多...
#include <stacktrace.hpp>
类 | |
| class | frame |
| 堆栈帧类 更多... | |
Public 类型 | |
| enum | format_flags { FMT_DEFAULT = 0 , FMT_SHOW_SOURCE = 1 , FMT_NO_ADDRESS = 2 } |
| 格式化标志 更多... | |
Public 成员函数 | |
| stacktrace (size_t skip=0, size_t max_depth=64) | |
| 构造函数,捕获当前堆栈 | |
| size_t | size () const noexcept |
| 获取堆栈深度 | |
| bool | empty () const noexcept |
| 检查堆栈是否为空 | |
| const frame & | operator[] (const size_t idx) const noexcept |
| 常量索引访问 | |
| frame & | operator[] (const size_t idx) noexcept |
| 索引访问 | |
| auto | begin () const noexcept |
| 获取起始常量迭代器 | |
| auto | end () const noexcept |
| 获取结束常量迭代器 | |
| auto | cbegin () const noexcept |
| 获取起始常量迭代器 | |
| auto | cend () const noexcept |
| 获取结束常量迭代器 | |
| string | to_string () const |
| 转换为字符串 | |
| string | to_string (format_flags flags) const |
| 以指定格式转换为字符串 | |
| Public 成员函数 继承自 neforce::istringify< stacktrace > | |
| constexpr string | to_string () const |
| 转换为字符串 | |
静态 Public 成员函数 | |
| static stacktrace | current (size_t skip=0, size_t max_depth=64) |
| 获取当前线程堆栈 | |
| static stacktrace | from_exception (const exception_ptr &ep, size_t max_depth=64) |
| 从异常指针获取堆栈跟踪 | |
格式化标志
| 枚举值 | |
|---|---|
| FMT_DEFAULT | 默认格式 |
| FMT_SHOW_SOURCE | 显示源文件位置信息 |
| FMT_NO_ADDRESS | 不显示地址 |
在文件 stacktrace.hpp 第 106 行定义.
构造函数,捕获当前堆栈
| skip | 要跳过的帧数(包括当前函数) |
| max_depth | 最大捕获深度 |
捕获当前线程的调用堆栈,跳过指定数量的顶层帧。
被这些函数引用 current() , 以及 from_exception().
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
staticnodiscard |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
staticnodiscard |
|
inlinenodiscardnoexcept |
|
nodiscard |
转换为字符串
每行格式:#索引 地址 [in 函数名]
|
nodiscard |
以指定格式转换为字符串
| flags | 格式化标志 |