闲碎记事本 闲碎记事本
首页
  • JAVA
  • Cloudflare
  • 学完再改一遍UI
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

YAN

我要偷偷记录...
首页
  • JAVA
  • Cloudflare
  • 学完再改一遍UI
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • java

    • SpringBoot

    • SpringSecurity

    • MybatisPlus

    • Netty

    • sip

    • 其他

      • MDC 使用
      • 位运算
      • RedisMQ实现
      • 自定义枚举序列化
      • Mybatis使用自定义枚举
      • Jackson反序列化泛型注意点
      • 敏感词过滤算法
      • 线程
      • 并发学习
      • jni使用
      • 关于注释
      • 为什么一个Byte用两个16进制表示
      • JAVA获取系统信息
      • 对extends和super的理解
      • JAVA系统API
      • java探针初探
      • JAVA获取USB信息
      • HashMap初探
      • JAVA远程调试
        • 启动命令格式
        • OPT内容
        • IDEA 使用
        • 参数详情:
        • Google出来的原理:
          • Agents
      • 初探webflux
      • SSE示例
  • linux

  • docker

  • redis

  • nginx

  • mysql

  • 其他

  • 环境搭建

  • 知识库
  • java
  • 其他
Yan
2023-03-15
目录

JAVA远程调试

很多时候,我们的服务不是在本地,而是在远程服务器上。这时候出了问题,大多数是通过日志判断。

下面记录一种能远程连接服务器进行debug的方式

# 启动命令格式

java -jar ${OPT} demo.jar

# OPT内容

JDK 9↑

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005

JDK 5-8

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

# IDEA 使用

编辑

编辑

设置

设置

# 参数详情:

参数 示例值 描述
transport dt_socket 指定运行的被调试应用和调试者之间的通信协议
address 5000 远程被调试应用开通的端口
server y 开启调试server端
y(Attach 模式)等待有调试器Attach过来,
n (Listen 模式)等待服务调用
suspend n 用来告知 JVM 立即执行,不要等待未来将要附着上/连上(attached)的调试者。
如果设成 y, 则应用将暂停不运行,直到有调试者连接上

# Google出来的原理:

# Agents

  • JVM运行时允许外部注入的库(Java或C++写的libraries)它们有能力修改运行中 .class 文件的内容。
  • 传递一个 Agent Lib 给 JVM, 添加启动参数 agentlib:libname[=options] 。例如:远程调试:-agentlib:jdwp=...
  • jdwp agent 会建立运行应用的 JVM 和调试者(本地或者远程)之间的桥梁,能拦截运行的代码。
上次更新: 2025/05/14, 01:34:05
HashMap初探
初探webflux

← HashMap初探 初探webflux→

最近更新
01
Caddy操作指南
04-25
02
Swap空间
04-22
03
Alist使用
04-21
更多文章>
Theme by Vdoing | Copyright © 2022-2025 YAN | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式