Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/snaipe/insight
A reflection library for C and C++
https://github.com/snaipe/insight
Last synced: 2 months ago
JSON representation
A reflection library for C and C++
- Host: GitHub
- URL: https://github.com/snaipe/insight
- Owner: Snaipe
- License: lgpl-3.0
- Created: 2015-06-03T02:37:11.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-05-03T22:23:27.000Z (over 8 years ago)
- Last Synced: 2024-05-02T00:19:45.245Z (8 months ago)
- Language: C++
- Homepage:
- Size: 189 KB
- Stars: 5
- Watchers: 3
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
#
A reflection library for C/C++
**WARNING: This library is still experimental. Beware of bugs and API changes!**
## Features
This library enables runtime reflection for C and C++ programs, providing
runtime information and manipulation of primitive, pointer, struct, union,
and class types including the name, storage size, members, methods, ...;
namespaces, and top level functions.Insight works by building metadata on types from the debug symbols -- as such
it cannot work on binaries without any. Make sure to compile with `-g` and/or
not strip your debug symbols!## Samples
Samples are available in the [samples directory][samples].
## Installation
### Prerequisites
* [libdwarf++][libdwarf++]
* A GNU C/C++ compiler like GCC or Clang### Building from the source code
```bash
$ git clone https://github.com/Snaipe/Insight.git
$ cd Insight
$ mkdir build && cd $_
$ cmake .. && make
(become root)
# make install
```## Documentation
[ TODO ]
## Contributing
You need to observe the following rules for pull requests:
* Your modifications must be working and tested.
* Be consistent with the project's style and formatting.
* Squash your commits into one if you can.
* If new files are added, please say so in the commit message, and add the license header.
* Keep your commit messages simple and concise. Good commit messages start with a verb ('Added', 'Fixed', ...).
* Your branch must be based off an up-to-date master, or at least must be able to be merged automatically.
* Sign off your pull request message by appending 'Signed-off-by: ' to the message.By submitting a pull request you accept to license your code under the Lesser GNU Public License version 3.
## Credits
Logo done by [Greehm](http://www.cargocollective.com/pbouigue)
[libdwarf++]: https://github.com/Snaipe/libdwarfplusplus
[samples]: ./samples/