|
1 | 1 | # Welcome to the CallstackLibrary! |
2 | | -This is a library creating humanreadable callstacks by parsing the debug symbols of |
3 | | -the executable, if they are available. Otherwise, the dynamic linker information is used. |
| 2 | +This repository contains a library which can create human readable callstacks. It features a C API, but |
| 3 | +there is also a C++ wrapper for it. |
4 | 4 |
|
5 | 5 | ## Usage |
6 | | -_Coming soon!_ |
| 6 | +In order to get started, you can either download a compiled version of the library [here](https://www.github.com/mhahnFr/CallstackLibrary/releases). |
| 7 | +Alternatively, you can also build it from source: |
| 8 | +- Clone the repository: ``git clone https://www.github.com/mhahnFr/CallstackLibrary`` |
| 9 | +- and build the library: ``cd CallstackLibrary && make``. |
| 10 | + |
| 11 | +On some systems, you might need to install the ``libexecinfo-dev`` to compile the library successfully. |
| 12 | +If this is the case, add ``-lexecinfo`` to the linking flags. |
| 13 | + |
| 14 | +In order to use this library, simply include the header [``callstack.h``](https://www.github.com/mhahnFr/CallstackLibrary/blob/main/include/callstack.h). |
| 15 | + |
| 16 | +**Linking**: |
| 17 | +- On **macOS**, link using these flags: ``-L<path/to/library> -lcallstack``. |
| 18 | +- On **Linux**, link with ``-rdynamic -L<path/to/library> -lcallstack -ldl``. |
| 19 | +- On **FreeBSD**, link with ``-rdynamic -L<path/to/library> -lcallstack -ldl -lexecinfo``. |
| 20 | + |
| 21 | +The complete set of features is described in the [wiki](https://www.github.com/mhahnFr/CallstackLibrary/wiki). |
| 22 | + |
| 23 | +## Upcoming features |
| 24 | +The callstacks are currently created using the informations of the dynamic linker. |
| 25 | +In the future, parsing of the debug symbols will be added. |
7 | 26 |
|
8 | 27 | ### Final notes |
9 | 28 | This library is licensed under the terms of the GPL 3.0. |
|
0 commit comments