Namespaces
Variants

std::basic_stacktrace<Allocator>:: current

From cppreference.net
static basic_stacktrace current ( const allocator_type & alloc =
allocator_type ( ) ) noexcept ;
(1) (自 C++23 起)
static basic_stacktrace current ( size_type skip, const allocator_type & alloc =
allocator_type ( ) ) noexcept ;
(2) (自 C++23 起)
static basic_stacktrace current ( size_type skip, size_type max_depth,

const allocator_type & alloc =

allocator_type ( ) ) noexcept ;
(3) (自 C++23 起)

s [ i ] (0 ≤ i < n ) 表示当前执行线程中当前评估的堆栈跟踪的第 ( i +1 ) 个堆栈跟踪条目,其中 n 是堆栈条目中的堆栈跟踪条目数量。

1) 尝试创建一个由 s [ 0 ] s [ 1 ] 、……、 s [ n - 1 ] 组成的 basic_stacktrace
2) 尝试创建一个由 s [ m ] , s [ m + 1 ] , ..., s [ n - 1 ] 组成的 basic_stacktrace ,其中 m min(skip, n )
3) 尝试创建一个由 s [ m ] s [ m + 1 ] 、……、 s [ o - 1 ] 组成的 basic_stacktrace ,其中 m min(skip, n ) o min(skip + max_depth, n ) 。若 skip + max_depth < skip (即 skip + max_depth 的数学运算结果发生溢出),则行为未定义。

在所有情况下, alloc 都会被存储到创建的 basic_stacktrace 中,并用于分配堆栈轨迹条目的存储空间。

目录

参数

alloc - 用于构造的 basic_stacktrace 所有内存分配的分配器
skip - 要跳过的堆栈跟踪条目数量
max_depth - 堆栈跟踪条目的最大深度

返回值

如果分配成功,将生成如上所述的 basic_stacktrace

否则,返回空的 basic_stacktrace

示例

参见

创建新的 basic_stacktrace
(公开成员函数)
[static]
构造新的 source_location ,对应调用点的位置
( std::source_location 的公开静态成员函数)