|
1 | | -# 3rd year Dissertation Project - University of Manchester |
| 1 | +# JNI Exception Capturing Agent for Production Debugging - BSc Dissertation Project - University of Manchester |
2 | 2 |
|
3 | | -The commencement of a C JNI Agent, designed to recursively capture the values of objects within methods on a stack trace. |
| 3 | +## Overview |
| 4 | +This repository contains the implementation of a C JNI Agent designed to recursively capture the values of objects within methods on a stack trace. |
4 | 5 |
|
5 | | -To use, it is necessary to install the libxml2 library, as well as Jansson, crypto, and openssl. |
| 6 | +## Prerequisites |
| 7 | +To utilize this agent, you need to install the following libraries: |
| 8 | +- `libxml2` |
| 9 | +- `Jansson` |
| 10 | +- `crypto` |
| 11 | +- `openssl` |
6 | 12 |
|
7 | | -The resulting library files can be incorporated using the -agentpath flag in the java command. |
| 13 | +## Installation and Usage |
| 14 | +1. **Building the JNI Agent**: |
| 15 | + Compile the JNI agent and generate the library files. |
| 16 | + |
| 17 | +2. **Running with Java**: |
| 18 | + Incorporate the resulting library files using the `-agentpath` flag in the Java command. |
8 | 19 |
|
9 | | -This agent interacts with a basic Scala Spray server, which records the captured values in MongoDB. To configure the server, modify the src/main/resources/application.conf file accordingly, then build and execute it using sbt run. |
| 20 | +## Scala Spray Server Integration |
| 21 | +This agent interfaces with a basic Scala Spray server to record captured values in MongoDB. |
10 | 22 |
|
11 | | -Additionally, a FuelPHP dashboard is utilized, which communicates with the Scala Spray server to present the analysis results. Ensure you perform a composer install to set it up. |
| 23 | +### Configuration |
| 24 | +- Modify the `src/main/resources/application.conf` file to configure the server settings. |
| 25 | +- Build and run the server using `sbt run`. |
12 | 26 |
|
13 | | -It is important to note that this implementation is not stable, secure, or optimized, as it serves as a minimum viable product (MVP). However, you can extract relevant code snippets from it, particularly those demonstrating communication with the JNE. |
| 27 | +## FuelPHP Dashboard |
| 28 | +A FuelPHP dashboard is used to display the analysis results by communicating with the Scala Spray server. |
14 | 29 |
|
15 | | -Please bear in mind that this project was an experimental endeavor conducted at the university level. |
| 30 | +### Setup |
| 31 | +- Perform `composer install` to set up the FuelPHP dashboard. |
| 32 | + |
| 33 | +## Note |
| 34 | +This implementation serves as a Minimum Viable Product (MVP). It is not stable, secure, or optimized. However, relevant code snippets, especially those demonstrating communication with the JNI, can be extracted and used. |
| 35 | + |
| 36 | +## Disclaimer |
0 commit comments