最終更新日時(UTC):
が更新

履歴 編集

function
<stacktrace>

std::stacktrace_entry::native_handle(C++23)

constexpr native_handle_type native_handle() const noexcept; // (1) C++23

概要

ハンドルを取得する。

戻り値

実装定義のハンドルを返す。

備考

  • 変更されていないstacktrace_entryオブジェクトに対してこの関数を連続して呼び出すと、同じ値が返される
  • GCCでは、libstdc++の内部ライブラリ向けのポインタを整数値型std::uintptr_tの変換した型になっている
    • __glibcxx_backtrace_pcinfo()など、内部ライブラリ用であるため、ユーザーがハンドルを便利に使えるようにはなっていない
  • MSVCでも内部ライブラリ向けのvoid*型ポインタになっている
    • こちらも内部ライブラリ用であるため、ユーザーがハンドルを便利に使えるようにはなっていない

#include <iostream>
#include <stacktrace>

void g() {
  std::stacktrace st = std::stacktrace::current();
  std::stacktrace_entry entry = st[0];

  std::cout << entry.native_handle() << std::endl;
}

void f() {
  g();
}

int main() {
  f();
}

出力例 (GCC)

4199037

バージョン

言語

  • C++23

処理系