Debugging Forge
Forge logfiles
As of CR1 (and SNAPSHOTS since Beta5,) Forge produces a debug logfile located at:
$HOME/.forge/runtime.log
Eclipse integrated debugging
A new feature of JBoss Tools 4.0 is the debug option of the Forge plugin.
Under Window > Preferences > Forge the option “Start Forge in Debug Mode” enables you to fully debug the Forge runtime. Hitting the famous [CTRL+4] keys will then launch Forge in Eclipse debugger. This way you may watch Forge registering and launching your plugin. Don’t forget to switch to Debug perspective.
Depending of your use case you may additionally change the Forge runtime by registering your current Forge core source tree under “Installed Forge Runtimes”.
Current Shortcomings
The current eclipse plugin does not yet associate sources automatically, so you have to add relevant sources using “Edit Source Lookup” on the debug configuration. The generated debug configuration is available during the Forge debug session and will be cleaned up afterwards.
Enable debug mode
Start Forge by using the following parameter:
forge --debug
If you don’t want to use the —debug parameter, you need to set the following FORGE_OPTS (JVM arguments) in your console before starting Forge (this does not work when running Forge in the IDE – it must be run from the command line).
For Unix:
export FORGE_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"
For Windows (note no quotes):
set FORGE_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
Then run Forge. If you’ve done this step correctly, Java should state that it is waiting for the debugger to attach on port 8000.
Connect the debugger
If you are using Eclipse, in addition to having the Forge sources imported as projects in your workspace, you will need to create a new project (for this example, call it ‘maven-debug’), then right-click on that project, and click “Debug as → Remote Java Application”
Make sure the remote debugger port is set to 8000 (or the port you’ve selected,) much like debugging Maven.
Attach the sources
If Eclipse complains that it cannot find the source attachment for a breakpoint, make sure to add all related Forge projects as source attachments to your new ‘maven-debug’ project by clicking the “Attach Sources” button.