我正在尝试调试CDAP代码和插件代码
我尝试了几种方法来运行CDAP沙箱:
https://docs.cask.co/cdap/5.1.0-SNAPSHOT/en/developer-manual/getting-started/sandbox/docker.html
沙箱运行,粗壮的日志显示端口5005已暴露以进行调试
1
docker ps还有另外两个端口: 0.0.0.0:11011->11011/tcp、0.0.0.0:11015->11015/tcp cdap-sandbox
当我将IntelliJ调试器配置为11015时,似乎没有问题,但是断点无法捕获代码的运行。
我尝试在virtualbox上运行CDAP沙箱并使用192.168.99.100,但是我仍然无法使用远程调试器捕获断点
我还尝试将5005添加到暴露的docker端口0.0.0.0:5005->5005/tcp 并配置intellij以执行相同操作。 Intellij无法连接到远程5005
如何使用intellij调试cdap沙箱?
答案 0 :(得分:1)
问题与bin目录中的functions.sh文件有关。默认情况下,它将侦听端口绑定到本地主机。
要修复它:
查找行:
"CDAP_SDK_OPTS+=" -agentlib:jdwp=transport=dt_socket,address=localhost:${__port},server=y,suspend=n"
,然后将其更改为(删除localhost:
):
"CDAP_SDK_OPTS+=" -agentlib:jdwp=transport=dt_socket,address=${__port},server=y,suspend=n"
答案 1 :(得分:1)
bin/cdap sandbox start --enable-debug
Run -> Edit Configurations -> Add New Configuration -> Remote
在使用模块类路径输入配置中选择您的maven模块,然后点击 Apply
现在要调试,请按 debug 按钮,您就可以了。
答案 2 :(得分:0)