src/native/external/llvm-libunwind/docs/index.rst
.. _index:
libunwind is an implementation of the interface defined by the HP libunwind project. It was contributed by Apple as a way to enable clang++ to port to platforms that do not have a system unwinder. It is intended to be a small and fast implementation of the ABI, leaving off some features of HP's libunwind that never materialized (e.g. remote unwinding).
The unwinder has two levels of API. The high level APIs are the _Unwind_*
functions which implement functionality required by __cxa_* exception
functions. The low level APIs are the unw_* functions which are an interface
defined by the old HP libunwind project.
.. toctree:: :maxdepth: 2
BuildingLibunwind
libunwind is a production-quality unwinder, with platform support for DWARF unwind info, SjLj, and ARM EHABI.
The low level libunwind API was designed to work either in-process (aka local) or to operate on another process (aka remote), but only the local path has been implemented. Remote unwinding remains as future work.
libunwind is known to work on the following platforms:
============ ======================== ============ ======================== OS Arch Compilers Unwind Info ============ ======================== ============ ======================== Any i386, x86_64, ARM Clang SjLj Bare Metal ARM Clang, GCC EHABI FreeBSD i386, x86_64, ARM64 Clang DWARF CFI iOS ARM Clang SjLj Linux ARM Clang, GCC EHABI Linux i386, x86_64, ARM64 Clang, GCC DWARF CFI macOS i386, x86_64 Clang, GCC DWARF CFI NetBSD x86_64 Clang, GCC DWARF CFI Windows i386, x86_64, ARM, ARM64 Clang DWARF CFI ============ ======================== ============ ========================
The following minimum compiler versions are strongly recommended.
Anything older may work.
First please review our Developer's Policy <https://llvm.org/docs/DeveloperPolicy.html>__
and Getting started with LLVM <https://llvm.org/docs/GettingStarted.html>__.
Bug Reports
If you think you've found a bug in libunwind, please report it using
the LLVM bug tracker. If you're not sure, you
can ask for support on the Runtimes forum or on Discord.
Please use the tag "libunwind" for new threads.
Patches
If you want to contribute a patch to libunwind, please start by reading the LLVM
documentation about contributing <https://www.llvm.org/docs/Contributing.html>__.
Discussion and Questions
Send discussions and questions to the Runtimes forum_. Please add the tag "libunwind" to your post.
LLVM Homepage <https://llvm.org/>_LLVM Bug Tracker <https://github.com/llvm/llvm-project/labels/libunwind/>_Clang Discourse Forums <https://discourse.llvm.org/c/clang/6>_cfe-commits Mailing List <http://lists.llvm.org/mailman/listinfo/cfe-commits>_Runtimes Forum <https://discourse.llvm.org/tags/c/runtimes>_Browse libunwind Sources <https://github.com/llvm/llvm-project/blob/main/libunwind/>_