工作四年,我学会了用 Idea本地调试线上测试服务器代码 川长思鸟来 2024-05-23 22:27 1阅读 0赞 ## 工作四年,我学会了用 Idea本地调试线上测试服务器代码 ## ### 一.那些辛酸的过往 ### * **历历在目的场景?**(❁´◡`❁)(❁´◡`❁) * 线上出现问题,但是没加日志打印**拍脑门惋惜为啥不多打一行日志** * 加日志重新部署,半小时没了,问题还没有找到,头顶的灯却早已照亮了整层楼… * 排查别人线上的 bug,不仅代码还没看懂,还没一行日志,捏了一把汗! * 一个问题排查一天,被 Diss 排查问题慢… * **那些只能发布才能调试、部署一次要半小时的应用,真的会让生命变得廉价** ### 二.远程debug原理 ### * 通过启动本地idea中的remoteDebug,启动后本地remoteDebug程序会与服务器上远程代码建立一个socket连接,当用户访问远程服务器端代码接口时,服务器端会先去判断本地idea中是否有断点,有则停在断点,没有则直接走远程服务器返回结果给用户 * ![在这里插入图片描述][ab39fa1f185e4b9795fb5225e3ed1f19.png] #### 远程调试分类 #### * 远程调试分为主动连接调试,和被动连接调试。 ##### 主动连接调试: ##### * 服务端配置监控端口,本地IDE连接远程监听端口进行调试,一般调试问题用这种方式。 ##### 被动连接调试: ##### * 本地IDE监听某端口,等待远程连接本地端口。一般用于远程服务启动不了,启动时连接到本地调试分析。 ### 三.操作步骤 ### #### 准备一个简单springboot程序 例如helloworld #### * 写一个controller * ![在这里插入图片描述][b38bebdb57da47718a85280af3d09fab.png] * 打包成jar包 * ![在这里插入图片描述][1beb26e3ce674d89875a60b4b0e292bb.png] * 点击配置 * ![在这里插入图片描述][21f3794f764f487cb445c7ab21771108.png] #### 添加远程调试 #### * ![在这里插入图片描述][6059d6144f5c404187f7cdf6f4e84312.png] #### 配置调试的参数 #### * ![在这里插入图片描述][de1972e866654e27bc1cecb8d8c0a5ce.png] * 点击ok,然后我们开始启动jar包 #### 新建一个remotoDemo目录,将jar包复制到remotoDemo目录下,在idea中打开终端 #### * ![在这里插入图片描述][5f131a332c40446594bb4170372a1086.png] * ![在这里插入图片描述][eb38c6e95f7943eba2d83bf0bfad818b.png] #### 启动jar包 #### * java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888 -jar helloWorld-0.0.1-SNAPSHOT.jar * 如果想后台启动则用 * nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888 -jar helloWorld-0.0.1-SNAPSHOT.jar & * 启动效果图 * ![在这里插入图片描述][8cfd0c07ad444af2b2cb5e57a5776709.png] #### 然后我们启动刚刚配置的remote JVM Debuger #### * ![在这里插入图片描述][f760eb6e7c3842fc9923219cc9636e0d.png] #### 开始验证 #### * 访问远程服务器接口,注意这里访问的localhost:8888访问的是启动的helloworldjar包,而不是remote监控程序,如果你有远程服务器,则可以将jar包放到服务器上,然后通过服务器ip:端口去访问接口,同样会进入断点 * ![在这里插入图片描述][122285da02054b968ea93c4d03837eda.png] * ![在这里插入图片描述][bda71d18c795491da3848850bf4eb3f6.png] [ab39fa1f185e4b9795fb5225e3ed1f19.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/05/23/b1ed9b1534e14bfb96a1b653ea45c75d.png [b38bebdb57da47718a85280af3d09fab.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/05/23/132fdc6fea1d4188a5bc4cc462ce8743.png [1beb26e3ce674d89875a60b4b0e292bb.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/05/23/83870f88433f491e9bb17a054ef427cb.png [21f3794f764f487cb445c7ab21771108.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/05/23/b1ef9c970f724f7590bf5b52eb184230.png [6059d6144f5c404187f7cdf6f4e84312.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/05/23/ab721c624d34417da36404d0b406f38b.png [de1972e866654e27bc1cecb8d8c0a5ce.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/05/23/3bf5755b3dec4e72ba97652643fdf05d.png [5f131a332c40446594bb4170372a1086.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/05/23/8ce406577c2c41d1b86084a93a2f825d.png [eb38c6e95f7943eba2d83bf0bfad818b.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/05/23/8864fe5ce4684ace92470d602bec61e5.png [8cfd0c07ad444af2b2cb5e57a5776709.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/05/23/0bd41e41fea64b15a8581338fcecd59b.png [f760eb6e7c3842fc9923219cc9636e0d.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/05/23/3f8689975e6a4c6aa10a65ef3ff1174a.png [122285da02054b968ea93c4d03837eda.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/05/23/40e43083c2e640c9a7eeeea38ace2f71.png [bda71d18c795491da3848850bf4eb3f6.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/05/23/7acfd1843f484e77a0891fbcf3865760.png
还没有评论,来说两句吧...