IDEA远程DeBug调试

1. 介绍


在这里插入图片描述

当我们在开发过程中遇到一些复杂的问题或需要对代码进行调试时,远程调试是一种非常有用的工具。使用 IntelliJ IDEA 进行远程调试可以让你在远程服务器上的应用程序中设置断点、查看变量和执行调试操作。

远程调试的好处如下:

  1. 提供更方便的调试环境:通过远程调试,你可以在自己熟悉的 IntelliJ IDEA 开发环境中进行调试,而不需要在远程服务器上进行调试。
  2. 快速定位问题:远程调试允许你逐行调试代码,一步一步地了解代码的执行过程。这有助于快速定位和解决问题,尤其是在复杂的代码逻辑或边界情况下。
  3. 查看变量并进行监视:你可以在运行过程中查看变量的值,并监视它们的变化。这有助于了解代码在执行期间的状态,找出潜在的错误。
  4. 重现远程环境的问题:通过在本地进行远程调试,你可以在自己的开发环境中重现远程服务器上的问题。这样,你可以更轻松地调试并找出根本原因。

2. 创建一个springboot项目


1、创建springboot工程

2、导入依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.aopmin</groupId><artifactId>debug_demo</artifactId><version>1.0.0</version><packaging>jar</packaging><!--父工程--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.2</version><relativePath/> <!-- lookup parent from repository --></parent><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!--springboot web起步依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--hutool--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.12</version></dependency></dependencies><build><!--指定项目打完包之后的名称,xxx地方自定义--><finalName>debug_demo</finalName><plugins><!--打包插件--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build></project>

3、修改服务端口号

server:port: 6633

4、编写controller接口

package cn.aopmin.controller;import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;
import java.util.Map;/*** @author 白豆五* @version 2023/06/28* @since JDK8*/
@RestController
@RequestMapping("/api/user")
public class UserController {// region 通过ID获取用户信息@PostMapping("/info")public String getInfo(Long userId) {// 匿名内部类方式构建map存放用户信息Map<String, Object> userInfo = new HashMap<String, Object>() {{put("userId", 129);put("userName", "白豆五");put("userAge", 18);put("userSex", "男");}};if (userId == userInfo.get(userInfo)) { //如果两个包装类型比值要用equals方法return "用户信息:" + userInfo.toString();}return "用户不存在";}//endregion
}

3. 将项目打包,并部署到虚拟机上


前提环境:别忘装JDK

1、将项目打包,上传到虚拟机的/tmp目录

在这里插入图片描述

2、切到/tmp目录,执行如下命令启动程序

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005  zxx.jar

虚拟机IP地址:192.168.150.123,端口5005(别忘放行),jar包名: debug_demo.jar

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=192.168.150.123:5005  debug_demo.jar
Listening for transport dt_socket at address: 5005

在这里插入图片描述


4. 在IDEA中创建远程调试启动项


1、添加远程调试启动项

在这里插入图片描述

在这里插入图片描述

2、配置远程调试参数

在这里插入图片描述


5. 测试


1、在指定代码处打断点

在这里插入图片描述

2、Bebug启动远程调试

在这里插入图片描述

3、访问项目接口:http://192.168.150.123:6633/api/user/info
在这里插入图片描述

ok,到这里我们就简单把debug远程调试跑通了✌。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/4853.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Opencv3编程入门》学习笔记—第十一章

《Opencv3编程入门》学习笔记 记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 第十一章 特征检测与匹配 一、SURF特征点检测 太复杂了&#xff01;全是公式&#xff01; &#xff08;一&#xff09;SURF算法概览 SURF&#xff0c;SpeededUp Rebus…

无广告 齐全 简洁 免费的音乐开源软件(支持 电脑max win linux 手机 )——lxMusic

无广告 齐全 简洁 免费的音乐开源软件&#xff08;支持 电脑max win linux 手机 &#xff09;——lxMusic 话不多说先上效果 &#xff08;真香&#xff09; 下载地址&#xff08;官方&#xff09; https://www.lanzoui.com/b0bf2cfa/ 密码&#xff1a;glqw 软件安装包说明 文…

对 tcp out-of-window 的安全建议

TCP 收到一个 out of window 报文后会立即回复一个 ack&#xff0c;这是 RFC793 中 SEGMENT ARRIVES 段的要求。但这是为什么&#xff1f;难道不是默默丢弃才对吗&#xff1f; 对 oow 报文回复 ack&#xff0c;岂不是把正确的 ack 号回过去了吗&#xff0c;这样攻击者盲打一番…

Qt在Ubuntu下如何进行桌面软件开发?

文章目录 0.引言1.新建项目2.编写第一个程序3.在Qt外部启动程序 0.引言 笔者研究的方向涉及在ubuntu中运行代码&#xff0c;早先是直接利用控制台运行代码文件&#xff0c;在控制台中虽然设法将代码精简到一个三个文件中&#xff0c;只需要在控制台运行这三个文件即可&#xff…

MySQL数据库增删改查及聚合查询SQL语句学习汇总

目录 数据库增删改查SQL语句 MySQL数据库指令 1.查询数据库 2.创建数据库 3.删除数据库 4.选择数据库 创建表table 查看所有表 创建表 查看指定表的结构 删除表 数据库命令进行注释 增删改查&#xff08;CRUD&#xff09;详细说明 增加 SQL库提供了关于时间的…

搞芯片怎么能不懂perl?

各位ICer在工作的过程中&#xff0c;无论是前端还是后端&#xff0c;都会使用各种常见的脚本语言&#xff0c;比如&#xff1a;shell&#xff0c;python&#xff0c;perl&#xff0c;tcl等等用于文件的处理&#xff0c;case测试&#xff0c;工具环境的调用和搭建&#xff0c;虽…

【压缩空气储能】非补燃压缩空气储能系统集成的零碳排放综合能源优化调度(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

MySQL环境搭建(Windows电脑)

MySQL环境搭建-Windows电脑篇 软件获取&#xff1a; 搜索gzh【李桥桉】&#xff0c;需要win电脑安装包&#xff0c;回复【win-MS】。 搜索gzh【李桥桉】&#xff0c;需要mac电脑安装包&#xff0c;回复【mac-MS】。 注意&#xff1a;确保电脑为64位系统&#xff08;不是的话需要…

SpringSecurity(五):前后端分离认证总结案例。

前后端分离认证总结案例 前言难点分析Controller层eneity层RoleUser dao层service层config层LoginFilterSecurityConfig resourcesmapper propertiespom.xml结尾 前言 和上一篇一样&#xff0c;从上倒下复制粘贴&#xff0c;所有代码贴完再运行&#xff0c;代码没有问题&#…

Qt QLineEdit篇

QLineEdit篇 【1】QLineEdit简介【2】QLineEdit常用方法【3】QLineEdit使用举例UI设计界面效果头文件源文件 PC饱和了&#xff0c;跟我学Qt比较实在&#xff0c;哈哈哈 【1】QLineEdit简介 QLineEdit是Qt框架中的一个类&#xff0c;用于创建一个文本输入框&#xff0c;允许用…

Google 将为高端 Chromebook 推出独立品牌

说起 Chromebook&#xff0c;一般大家的第一印象就是价格便宜、配置不高、做工普通&#xff0c;所选的材料也都是以塑料为主&#xff0c;产品主打的市场也是学生和教育群体。在不少人看来&#xff0c;Chromebook 就是一个配备了功能齐全的浏览器&#xff0c;外加一定的文件管理…

react antd 样式修改

最近在做一个大数据的大屏ui更改&#xff0c;使用的是antd&#xff0c;需要根据ui稿调很多的antd组件样式 特做一个样式修改记录&#xff0c;也给需要的人一些帮助 我们修改的有以下样式&#xff1a; 如何改呢&#xff1a; /*修改 antd 组件样式 */// 仅 drop 下的下拉框改变样…