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

core.internal.backtrace.libunwind

LLVM libunwind 用の基本的な D 言語バインディング
libunwindには2種類ある:アップストリーム "のものは、HPから継承されたものである。 GNUプロジェクトとして保守されている、 LLVMのものはllvm-projectの一部で、Mac OSXのデフォルトである。
どちらも他言語のABIには欠かせないもので、GCCとLLVMの両方で利用できる。 GCCとLLVMの両方で利用できる。しかし、GCCでは、高レベル関数だけが公開されている。 が公開されているのに対して、LLVMでは上位関数と下位関数(_Unwind_* )が公開されている。 と下位レベル(unw_* )関数を公開している。 多くのディストリビューションは libunwindパッケージがある。 多くのディストリビューションには、unw_* 関数を提供するパッケージもあるが、リモート巻き戻しにも対応しているため、関数名はプラットフォームに依存する、 関数名は実際にはプラットフォーム依存であり、それらをバインドするのは面倒だ。 #define に依存しているものが多いので、それらをバインドするのは面倒だ。
将来的には、より高レベルの関数 ( ) だけを使ったバックトレースを実装したい。 _Unwind_* バックトレースを実装したいと考えている。 backtrace を直接使用せず、必要なときだけ関数名を取得することができる。 を取得するだけにしたい(現在は関数名をeagerlyに取得する必要がある)。
Authors:
Mathias 'Geod24' Lang