NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
neforce::stacktrace类 参考

堆栈跟踪类 更多...

#include <stacktrace.hpp>

类 neforce::stacktrace 继承关系图:
[图例]

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 frameoperator[] (const size_t idx) const noexcept
 常量索引访问
frameoperator[] (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)
 从异常指针获取堆栈跟踪

详细描述

堆栈跟踪类

捕获当前线程的调用堆栈,并提供对堆栈帧的访问。 支持符号名称解析和格式化的堆栈输出。

在文件 stacktrace.hpp29 行定义.

成员枚举类型说明

◆ format_flags

格式化标志

枚举值
FMT_DEFAULT 

默认格式

FMT_SHOW_SOURCE 

显示源文件位置信息

FMT_NO_ADDRESS 

不显示地址

在文件 stacktrace.hpp106 行定义.

构造及析构函数说明

◆ stacktrace()

neforce::stacktrace::stacktrace ( size_t skip = 0,
size_t max_depth = 64 )
explicit

构造函数,捕获当前堆栈

参数
skip要跳过的帧数(包括当前函数)
max_depth最大捕获深度

捕获当前线程的调用堆栈,跳过指定数量的顶层帧。

被这些函数引用 current() , 以及 from_exception().

成员函数说明

◆ begin()

auto neforce::stacktrace::begin ( ) const
inlinenodiscardnoexcept

获取起始常量迭代器

返回
常量迭代器

在文件 stacktrace.hpp193 行定义.

◆ cbegin()

auto neforce::stacktrace::cbegin ( ) const
inlinenodiscardnoexcept

获取起始常量迭代器

返回
常量迭代器

在文件 stacktrace.hpp205 行定义.

◆ cend()

auto neforce::stacktrace::cend ( ) const
inlinenodiscardnoexcept

获取结束常量迭代器

返回
常量迭代器

在文件 stacktrace.hpp211 行定义.

◆ current()

stacktrace neforce::stacktrace::current ( size_t skip = 0,
size_t max_depth = 64 )
staticnodiscard

获取当前线程堆栈

参数
skip要跳过的帧数
max_depth最大捕获深度
返回
堆栈跟踪对象

引用了 stacktrace().

◆ empty()

bool neforce::stacktrace::empty ( ) const
inlinenodiscardnoexcept

检查堆栈是否为空

返回
是否为空

在文件 stacktrace.hpp173 行定义.

◆ end()

auto neforce::stacktrace::end ( ) const
inlinenodiscardnoexcept

获取结束常量迭代器

返回
常量迭代器

在文件 stacktrace.hpp199 行定义.

◆ from_exception()

stacktrace neforce::stacktrace::from_exception ( const exception_ptr & ep,
size_t max_depth = 64 )
staticnodiscard

从异常指针获取堆栈跟踪

参数
ep异常指针
max_depth最大捕获深度
返回
堆栈跟踪对象

提取嵌套异常链中的堆栈信息。

引用了 stacktrace().

◆ operator[]() [1/2]

const frame & neforce::stacktrace::operator[] ( const size_t idx) const
inlinenodiscardnoexcept

常量索引访问

参数
idx索引位置
返回
对应位置的堆栈帧常量引用

在文件 stacktrace.hpp180 行定义.

◆ operator[]() [2/2]

frame & neforce::stacktrace::operator[] ( const size_t idx)
inlinenodiscardnoexcept

索引访问

参数
idx索引位置
返回
对应位置的堆栈帧引用

在文件 stacktrace.hpp187 行定义.

◆ size()

size_t neforce::stacktrace::size ( ) const
inlinenodiscardnoexcept

获取堆栈深度

返回
堆栈帧数量

在文件 stacktrace.hpp167 行定义.

◆ to_string() [1/2]

string neforce::stacktrace::to_string ( ) const
nodiscard

转换为字符串

返回
格式化的完整堆栈信息

每行格式:#索引 地址 [in 函数名]

◆ to_string() [2/2]

string neforce::stacktrace::to_string ( format_flags flags) const
nodiscard

以指定格式转换为字符串

参数
flags格式化标志
返回
格式化的完整堆栈信息

该类的文档由以下文件生成: