---
agentTools:
  projectIndex: https://jeakbot.readme.io/llms.txt
---

# Debugging a plugin / the framework

During the development process and for bug hunting session, debugging is a useful technique to get insights into what is happening inside the application.

In order to start debugging, the framework needs to be available in the development workspace.\
There are two ways of accomplishing this:

[block:api-header]
{
  "title": "Additional source set with runtime dependency"
}
[/block]

The easiest way would be creating a separate source set (or using the "test" source set which is available by default) and registering the frameworks artifact as a runtime dependency.\
All of its dependencies will automatically be registered too.

[block:api-header]
{
  "title": "Cloning the source code (use this for framework debugging)"
}
[/block]

Another way of getting the framework into the workspace is to clone the matching revision of the current source code and importing that as a module into the IDE.\
Consult [contributing.md](https://gitlab.com/fearnixxgaming/jeakbot/jeakbot-framework/blob/bleeding/CONTRIBUTING.md) for more information on that.

[block:api-header]
{
  "title": "Starting the framework"
}
[/block]

The main class for the framework is `de.fearnixx.jeak.Main` it can be started without any arguments.\
It is recommended to change the working directory to `run` below the development workspace.\
(That directory is included via. `.gitkeep` in the frameworks repository)

[block:callout]
{
  "type": "info",
  "title": "Note",
  "body": "At the moment, the framework scans the entire class path for plugins.  \nThat is planned to change in the future."
}
[/block]