使用 Eclipse 调试 Java Service Fabric 应用程序

  1. 按照设置 Service Fabric 开发环境中的步骤启动本地开发群集。

  2. 更新要调试的服务的 entryPoint.sh,以便使用远程调试参数启动 Java 进程。 可以在以下位置找到此文件:ApplicationName\ServiceNamePkg\Code\entrypoint.sh。 在此示例中调试时,设置端口 8001。

    java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -jar myapp.jar
    
  3. 通过将要调试的服务的实例计数或副本计数设置为 1 来更新应用程序清单。 此设置可避免用于调试的端口出现冲突。 例如,对于无状态服务,设置 InstanceCount="1";对于有状态服务,将目标和最小副本集大小设置为 1,如下所示:TargetReplicaSetSize="1" MinReplicaSetSize="1"

  4. 部署应用程序。

  5. 在 Eclipse IDE 中,选择“运行”->“调试配置”->“远程 Java 应用程序和输入连接属性”,然后按如下所示设置属性:

    Host: ipaddress
    Port: 8001
    
  6. 在所需的位置设置断点并调试应用程序。

如果应用程序崩溃,可能还想要启用 coredumps。 在 shell 中执行 ulimit -c,如果它返回 0,则未启用 coredumps。 若要启用不受限制的 coredumps,请执行以下命令:ulimit -c unlimited。 还可以使用命令 ulimit -a 验证状态。 如果要更新 coredump 生成路径,请执行 echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern

后续步骤