英語版
このページの英語版を見る

core.internal.execinfo

このモジュールは、適切なexecinfo実装が配下のCラン を実装しているかどうかを判断するのに役立つ。後者の場合 後者の場合、以下のバージョン識別子のうちの1つだけを、druntのビルド時に設定する必要がある。 druntimeのビルド時に設定されなければならない。
可能なバックトレース出力に基づく、可能な外部execinfoバージョンID 形式を持つ:
Version IDBacktrace format
ExtExecinfo_BSDFmt0x00000000 <D6module4funcAFZv+0x78> at module
ExtExecinfo_DarwinFmt1 モジュール 0x00000000 D6module4funcAFZv + 0
ExtExecinfo_GNUFmtmodule(D6module4funcAFZv) [0x00000000]or module(D6module4funcAFZv+0x78) [0x00000000]or module(D6module4funcAFZv-0x78) [0x00000000]
ExtExecinfo_SolarisFmtオブジェクトのシンボル+オフセット [pc]
このコードはまた、(Cのランタイムの自動検出か、あるいは によって)最大1つのフォーマットが選択されることを保証する。 Cのランタイム自動検出か、ExtExecinfo_ バージョンIDによる)。 に対応する値を格納する。 BacktraceFmt.
を使えば getMangledSymbolNameを使えば、元の揶揄されたシンボル名 をbacktrace_symbols の出力から得ることができる。
enum bool hasExecinfo;
バックトレース関数の有無を示す。
alias backtrace = core.sys.linux.execinfo.backtrace;
常にプラットフォームのバックトレース関数を指す。
alias backtrace_symbols = core.sys.linux.execinfo.backtrace_symbols;
常にプラットフォームの backtrace_symbols 関数を指す。サポートされる サポートされる出力フォーマットは BacktraceFmt列挙型" の値をテストすることで得られる。
alias backtrace_symbols_fd = core.sys.linux.execinfo.backtrace_symbols_fd;
常にプラットフォームのbacktrace_symbols_fd関数を指す。
enum BacktraceFmt: bool;
実際のexecinfo実装のバックトレース形式を示す。 最大で1つの値をtrue 。 他はfalse であるべきである。
BSD
0x00000000 <D6module4funcAFZv+0x78> at module
Darwin
1 モジュール 0x00000000 D6module4funcAFZv + 0
GNU
module(D6module4funcAFZv) [0x00000000] or module(D6module4funcAFZv+0x78) [0x00000000] or module(D6module4funcAFZv-0x78) [0x00000000]
Solaris
オブジェクト'シンボル+オフセット [pc]
nothrow @nogc const(char)[] getMangledSymbolName(const(char)[] btBuf, out size_t symBeg, out size_t symEnd);

nothrow @nogc const(char)[] getMangledSymbolName(const(char)[] btBuf);
backtrace_symbols 。 の名前を特定する。オプションで、入力バッファ内のシンボル名の開始インデックスと終了インデックスも設定する。 を設定する。
Parameters:
const(char)[] btBuf の出力を含む入力バッファは、以下のようになる。backtrace_symbols
size_t symBeg シンボル名の最初の文字にインデックスを付ける出力パラメータ
size_t symEnd シンボル名の後の最初の文字を示す出力パラメータ
Returns:
シンボル名