          MODULE=libunwind
         VERSION=1.8.3
          SOURCE=$MODULE-$VERSION.tar.gz
      SOURCE_URL=https://github.com/libunwind/libunwind/releases/download/v$VERSION/
      SOURCE_VFY=sha256:be30d910e67f58d82e753231f1357f326a1a088acf126b21ff77e60aab19b90b
        WEB_SITE=https://www.nongnu.org/libunwind/
         ENTERED=20150718
         UPDATED=20250912
           SHORT="A C API to determine the call-chain of a program"

cat << EOF
The primary goal of this project is to define a portable and efficient C
programming interface (API) to determine the call-chain of a program.
The API additionally provides the means to manipulate the preserved
(callee-saved) state of each call-frame and to resume execution at any point
in the call-chain (non-local goto). The API supports both local (same-process)
and remote (across-process) operation.
As such, the API is useful in a number of applications. Some examples include:
  exception handling
     The libunwind API makes it trivial to implement the stack-manipulation
     aspects of exception handling.
  debuggers
     The libunwind API makes it trivial for debuggers to generate the
     call-chain (backtrace) of the threads in a running program.
  introspection
     It is often useful for a running thread to determine its call-chain.
     For example, this is useful to display error messages (to show how the
     error came about) and for performance monitoring/analysis.
  efficient setjmp()
     With libunwind, it is possible to implement an extremely efficient version
     of setjmp(). Effectively, the only context that needs to be saved consists
     of the stack-pointer(s).
EOF
