首页 > 系统相关 >Linux 远程Debug JVM

Linux 远程Debug JVM

时间:2024-08-15 14:27:54浏览次数:13  
标签:10005 端口 debug 调试 JVM Linux Debug 日志 端口号

前言:

        在我们的开发中由于部署环境的差异性,相信很多朋友都碰到过开发环境正常测试过的功能在测试环境甚至生产环境下出现bug的情况。一般情况下,生产环境可以采取的手段比较单一,即通过日志的方式获取运行中的环境上下文,分析日志文件并尝试重现bug。这会带来的问题还是不少的,首先,日志的分析是一项比较耗时的工作;其次,现有的日志记录不一定能反映出问题,你可能需要多次重复这个过程(分析日志->猜测问题->加日志->部署->获取日志)来慢慢逼近问题。倘若是测试环境,我们还多了一项可供选择的手段——远程调试——将程序在测试环境中以debug模式启动,在本机使用IDEA在工程中设置断点进行调试。       

        今天博主就来讲解一下在java开发中,我们如何去远程debug调试我们的代码查看问题呢?

当前环境:

Linux服务器Rocky9

注意事项:

1.服务器代码和本地代码要保持一致

2.不要在正式环境用这个,因为端口开放后谁都可以连接。安全性问题

3.命令中 address=10005 这个端口号可以随意取,但是不能和你的项目端口号一致, 这个端口号是 和你idea 建立连接的socket端口

4.安全组端口号记得要开放

5.偶发会出现 idea 提示已经连接,或者连接不上,可以重启idea再试一下,基本解决问题。 如果还是不行,请按照错误信息排查

6.需按照顺序来,先启动服务器应用,在启动idea

操作步骤:

1.启动jar包指定远程debug端口号,我这里是后台启动,指定10005端口

 nohup java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10005 xxxxx.jar >> xxxxx.log 2>&1 &

2.开放debug端口安全组,内网环境防火墙开放端口

//开放端口10005

sudo firewall-cmd --permanent --add-port=10005/tcp

//reload防火墙
sudo firewall-cmd --reload

3.打开我们的IDEA,打开编辑配置页面。

4.选择远程JVM调试的选项。

5.输入自己要调试的环境IP地址及远程debug端口。

5.启动该调试服务

6.打断点开始debug即可。

大家可以试一下,有问题随时留言。一键三连,谢谢大家。

标签:10005,端口,debug,调试,JVM,Linux,Debug,日志,端口号
From: https://blog.csdn.net/Mi_RenYu/article/details/141220274

相关文章

  • Linux系统性能监控工具Glances使用
    一Glances简介1.1glances介绍Glances是一个跨平台的监控工具,旨在通过curses或基于Web的界面呈现大量监控信息。该信息根据用户界面的大小动态调整。它也可以在客户端/服务器模式下工作。远程监控可以通过终端、Web界面或API(XML-RPC和RESTful)完成。统计数据也可以导出......
  • 嵌入式linux mkdir: cannot create directory 'test': Read-only file system
    这个错误表明你尝试在嵌入式Linux系统上创建一个名为'test'的目录时失败了,因为文件系统被挂载为只读模式。在只读模式下,你无法修改文件系统的内容,包括创建、删除文件或目录。解决方法:1.重新挂载文件系统为读写模式。你可以使用mount命令重新挂载文件系统,并指定读写权限。例如:......
  • 0233-Net-linux 收包流程
    环境Time2022-11-27WSL-Ubuntu22.04前言说明参考:https://github.com/leandromoreira/linux-network-performance-parameters目标了解linux系统接收网络数据包的具体流程。数据到达网卡网卡将光电信号还原成数据包。网卡校验如果不是在混杂模式下,网卡校验数据包中......
  • linux目录结构
    目录结构的特点linux文件系统如下有两个特点:​ 逻辑上,所有的目录都在最高级别的根目录"/"下​所有的目录内容按照类别组织目录结构###查看方式ls-la/或者tree-L1/#-L1表示显示“/”下目录的层次,1表示一层/bin二进制命令目录/boot内核及启动......
  • Linux远程开发
    1.安装ubuntu系统24.042.更换软件安装源备份原本源:sudocp/etc/apt/sources.list.d/ubuntu.sources/etc/apt/sources.list.d/ubuntu.sources.bak打开ubuntu.sources粘贴以下代码:#阿里云Types:debURIs:http://mirrors.aliyun.com/ubuntu/Suites:noblenoble-updates......
  • linux目录操作函数
    目录基本操作函数目录操作1,打开目标目录 2.读取目录  3.关闭目录 目录 当文件看,只不过操作函数和操作文件函数不一样。opendirDIR *opendir(const char *name);功能:打开一个目录获得一个目录流指针参数:name:目录名返回值:成功返回目录流指针     ......
  • java使用动态链接库读取Fanuc设备,在linux环境部署时报错:FOCAS2 log file is not found
    在linux环境中,使用java调用动态链接库的方式读取Fanuc,报错“FOCAS2logfileisnotfound”解决办法linux环境使用cnc_allclibhndl3之前,需要先使用cnc_startupprocess启用并指定日志文件,否则会报错:"FOCAS2logfileisnotfound"。会包含cnc_startupprocess,windows的dll库......
  • Linux网络设置
    目录一、查看网络接口信息、1.ifconfig命令2.hostname查看主机名称  3.route查看路由表条码 4.netstat查看网路连接情况5.ss命令6.lsof命令 二、测试网络1.ping命令,测试网络连通性 2.跟踪数据包3.域名解析 三、设置网络地址参数1.设置网络接口参数......
  • day02(Linux)Shell脚本
    Shell脚本一.shell脚本基础概念1.1概念shell使用方式:手动在命令行下命令和用shell脚本shell脚本本质:shell命令的有序集合,扩展名可以为sh见名知意,也可以没有。shell既是应用程序,又是一种脚本语言(应用程序解析脚本语言)。解释型语句:不需要编译,解释一条执行一条,pytho......
  • Linux 中断机制(二)之中断子系统框架
    目录一、概述二、中断控制器GIC1、Distributor接口2、Redistributor接口3、CPU接口三、中断类型四、中断号五、中断申请函数1、request_irq函数2、request_threaded_irq()函数3、gpio_to_irq函数4、free_irq函数六、中断服务函数一、概述一个完整的中断子......