9、Skywalking的调试-远程调试OAP
2021-05-26 本文已影响0人
rock_fish
大致分以下几个步骤
前提:源码和远程应用的代码是一致的
- 调整远程OAPServer程序的VM启动参数,激活远程调试模式
- 修改sw源码的idea运行、调试设置,配置远程deubg选项
- 启动远程OAPServer,然后通过idea开始远程调试。
1.调整远程OAPServer程序的VM启动参数
cd apache-skywalking-apm-bin-es7\bin
vi oapService.sh
修改 oapService.sh , 激活远程调试,阻塞式监听5050端口。
image.png
实际内容如下:
OAP_OPTIONS=" -Doap.logDir=${OAP_LOG_DIR}"
DEBUG_OPTIONS=" -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5050"
eval exec "\"$_RUNJAVA\" ${JAVA_OPTS} ${DEBUG_OPTIONS} ${OAP_OPTIONS} -classpath $CLASSPATH org.apache.skywalking.oap.server.starter.OAPServerStartUp \2>${OAP_LOG_DIR}/oap.log 1> /dev/null &"
启动OAPService
$ sh ./oapService.sh
Listening for transport dt_socket at address: 5050//等待调试
2. skywalking源码项目的debug配置中添加 Remote JVM Debug
image.png
- 指定远程应用的的ip和监听端口
- 选择
oap-server模块 - 可以指定一个Name,这里起名
remote aop debug
image.png
3. 开始远程调试
- 启动OAPServer应用(保证激活了远程调试,防护墙放开了端口)
- 在oap的入口类
OAPServerStartUp的入口方法main中打断点,启动远程调试,可看到代码执行 停滞在断点处。
image.png