123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- .. _index:
- =======================
- libunwind LLVM Unwinder
- =======================
- Overview
- ========
- 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.
- Getting Started with libunwind
- ------------------------------
- .. toctree::
- :maxdepth: 2
- BuildingLibunwind
- Current Status
- --------------
- 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.
- Platform and Compiler Support
- -----------------------------
- 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.
- * Clang 3.5 and above
- * GCC 4.7 and above.
- Anything older *may* work.
- Notes and Known Issues
- ----------------------
- * TODO
- Getting Involved
- ================
- 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 Bugzilla`_. If you're not sure, you
- can post a message to the `cfe-dev mailing list`_ or on IRC.
- Please include "libunwind" in your subject.
- **Patches**
- If you want to contribute a patch to libunwind, the best place for that is
- `Phabricator <https://llvm.org/docs/Phabricator.html>`_. Please include [libunwind] in the subject and
- add `cfe-commits` as a subscriber. Also make sure you are subscribed to the
- `cfe-commits mailing list <http://lists.llvm.org/mailman/listinfo/cfe-commits>`_.
- **Discussion and Questions**
- Send discussions and questions to the
- `cfe-dev mailing list <http://lists.llvm.org/mailman/listinfo/cfe-dev>`_.
- Please include [libunwind] in the subject.
- Quick Links
- ===========
- * `LLVM Homepage <https://llvm.org/>`_
- * `LLVM Bugzilla <https://bugs.llvm.org/>`_
- * `cfe-commits Mailing List`_
- * `cfe-dev Mailing List`_
- * `Browse libunwind Sources <https://github.com/llvm/llvm-project/blob/main/libunwind/>`_
|