MockNetwork
你可以把 IntelliJ IDEA debugger 附加一个 MockNetwork
来 debug 你的 CorDap:
MockNetwork
中,确保 threadPerNode
设置为 false
你可以把 IntelliJ IDEA debugger 通过 node driver 附件到节点上来 debug 你的 CorDapp。
DriverParameters
中,确保 startNodesInProcess
设置为 true
像 Integration testing 中使用 node driver 定义一个网络
DriverParameter
中,确保 startNodesInProcess
设置为 false
并且 isDubug
设置为 true
运行 driver。每个节点的远程 debug 端口会自动生成并打印到终端中。像下边这样:
[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 {}
将 debugger 附加到节点的 debug 端口:
Remote
的 run/debug 配置Port
设置为 debug 端口添加断点
跟你的节点互动,当执行到断点的时候,执行会被暂停
为了可以进行节点的远程 debugging,在终端窗口中运行以下命令:
java -Dcapsule.jvm.args="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" -jar corda.jar
这个命令会在 5005 端口上启动 debugger,并且会停止流程来等待 debugger 附件。