如何在Mac上使用IntelliJ调试CDAP沙箱

时间:2018-10-25 15:35:49

标签: docker virtualbox remote-debugging cdap

我正在尝试调试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沙箱?

3 个答案:

答案 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)

  • 以调试模式启动CDAP沙箱。
bin/cdap sandbox start --enable-debug
  • 在智能中转到Run -> Edit Configurations -> Add New Configuration -> Remote
  • 指定配置名称,输入主机和端口(用于调试cdap的5005)。
  • 使用模块类路径输入配置中选择您的maven模块,然后点击 Apply

  • 现在要调试,请按 debug 按钮,您就可以了。

答案 2 :(得分:0)

您是否使用--enable-debug标志启动了CDAP?

我们的文档here将帮助您以调试模式启动CDAP。

此外,您可能会发现我们的Testing and Debugging文档很有帮助。