Debugging a CorDapp
There are several ways to debug your CorDapp.
Using a MockNetwork
You can attach the
IntelliJ IDEA debugger to a
MockNetwork
to debug your CorDapp:
Define your flow tests as per API: Testing.
- In your
MockNetwork
, ensure thatthreadPerNode
is set tofalse
.
- In your
Set your breakpoints.
Run the flow tests using the debugger. When the tests hit a breakpoint, execution will pause.
Using the node driver
You can also attach the IntelliJ IDEA debugger to nodes running via the node driver to debug your CorDapp.
With the nodes in-process
Define a network using the node driver as described in Conducting integration Testing.
In your
DriverParameters
, ensure thatstartNodesInProcess
is set totrue
.Run the driver using the debugger.
Set your breakpoints.
Interact with your nodes. When execution hits a breakpoint, execution will pause.
With remote debugging
Define a network using the node driver as described in Conducting integration Testing.
In your
DriverParameters
, ensure thatstartNodesInProcess
is set tofalse
andisDebug
is set totrue
.Run the driver. The remote debug ports for each node will be automatically generated and printed to the terminal.
For example:
[INFO ] 11:39:55,471 [driver-pool-thread-0] (DriverDSLImpl.kt:814) internal.DriverDSLImpl.startOutOfProcessNode -
Starting out-of-process Node PartyA, debug port is 5008, jolokia monitoring port is not enabled {}
Attach the debugger to the node of interest on its debug port:
- In IntelliJ IDEA, create a new run/debug configuration of type
Remote
. - Set the run/debug configuration’s
Port
to the debug port. - Start the run/debug configuration in debug mode.
- In IntelliJ IDEA, create a new run/debug configuration of type
Set your breakpoints.
Interact with your node. When execution hits a breakpoint, execution will pause.