使用IEDA远程调试
下面演示在docker中调试代码。
使用vulhub作为演示。
下载vulhub,进入vulhub/fastjson/vuln/
编辑docker-compose.yml ,在最后新建一行加入 - "8081:8081" 然后开始编译和运行环境
docker-compose build
docker-compose up -d
环境起来以后,进入到环境里面
docker exec -it 0dbf6abbf1d7 bash
接着进入/usr/local/tomcat/bin 文件夹下编辑catalina.sh
关于docker里面编辑文件有几种方式(apt-get update ,apt-get install vim或者docker cp ./catalina.sh 0dbf6abbf1d7:/usr/local/tomcat/bin/catalina.sh) ,
加入下面一句话开启debug选项,Ubuntu平台下的Tomcat的debug开启命令和CentOS下的Tomcat开启debug命令不一样
Ubuntu: CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8081,server=y,suspend=n" CentOS: declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
然后把docker环境中的webapps文件夹拷贝到宿主机中,用idea使用import 选项打开webapps文件夹
在右上角run键附近点击,新建debug Configurations,选择+号->Remote ,并且设置jdwp的端口和IP
在需要下断点的地方设置断点,在浏览器上访问8080(并不是jdwp的端口)就能断下来了。

为什么会有这篇文章,我遇到的问题:
我手里有一个可部署的war包,没有源码,在远程已经部署完毕。这时我想调试那个远程应用,怎么做呢?
解压缩war包到一个文件夹,然后用Intellij Idea打开这个文件夹,如图的结构,编译的Class都在 WEB-INF/classes 目录下
找到我要debug的那个class, 这里示例Handler.class, 通过Idea反编译出来的类代码,拷贝到一个新的文件Handler.java
虽然如图可以看到各种的编译错误,但是完全不影响你启动,代码中加断点和调试哦。
可能会有行格式显示错位的问题,导致断点断错或者断不下来,多断几个地方就好了
----2019.3.7号----分割,调试Jenkins。
命令:
docker run -p 8084:8080 -p 8089:8089 --env JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8089,server=y,suspend=n" 772f6f5b7485
其中772f6f5b7485是镜像ID,镜像参考https://hub.docker.com/r/h1kkan/jenkins-docker/
参考:
https://github.com/vulhub/vulhub
https://www.jianshu.com/p/d168ecdce022
使用IEDA远程调试的更多相关文章
- 微信公众号开发之VS远程调试
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...
- tomcat开发远程调试端口以及利用eclipse进行远程调试
一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里: SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compi ...
- Visual Studio 2012远程调试中遇到的问题
有的时候开发环境没问题的代码在生产环境中会某些开发环境无法重现的问题,或者需要对生产环境代码进行远程调试该怎么办? Vs已经提供给开发者远程调试的工具 下面简单讲讲该怎么用,前期准备:1.本地登录账户 ...
- 使用Eclipse进行远程调试
转自:http://blog.csdn.net/sunyujia/article/details/2614614 今天决定做件有意义的事,写篇图文并茂的blog,为什么要图文并茂?因为很多事可能用语言 ...
- 微信公众号开发系列教程一(调试环境部署续:vs远程调试)
http://www.cnblogs.com/zskbll/p/4080328.html 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试 ...
- tomcat 远程调试
1.服务端查看cataline.sh 中的描述 cataline jpda start 开启服务端远程调试 远程调试端口JPDA_ADDRESS="8000" 2.本地代码参考 ...
- 在Visual Studio上开发Node.js程序(2)——远程调试及发布到Azure
[题外话] 上次介绍了VS上开发Node.js的插件Node.js Tools for Visual Studio(NTVS),其提供了非常方便的开发和调试功能,当然很多情况下由于平台限制等原因需要在 ...
- [教学] Delphi Berlin 10.1 开发 Windows 10 平板 App 远程调试
Delphi Berlin 10.1 开发 Windows 10 平板 App 远程调试安装步骤: 准备电脑: 一台开发电脑,安装 Delphi 开发环境 一台平板电脑,安装 PAServer,安装方 ...
- Xdebug文档(七) 远程调试
Xdebug提示调试客户端接口与PHP运行相联系.该章节解释如何设置PHP与xdebug,并推荐一些客户端. 介绍 Xdebug的远程调试器允许你检查数据结构,交互式地穿过和调试你的代码.该协议已经开 ...
随机推荐
- GDBT
理论知识: 第四范式自主研发算法GBDT(Gradient Boosting Decision Tree) GBDT是一种基分类器为决策树的集成学习方法.决策树是一种常见的机器学习算法,GBDT中使用 ...
- Java核心技术之类与对象
知识点 1. 一个对象变量并没有实际包含一个对象,而仅仅引用一个对象.new操作符的返回值也是一个引用. 2. 局部变量不会自动地初始化为null,而必须用过调用new或将他们设置为null进行初始化 ...
- RNN文章总结
1.RNN 基本结构类型 2. RNN 3.零基础入门深度学习(5) - 循环神经网络 4.
- scrapy知识积累
Scrapy 中文文档https://scrapy-chs.readthedocs.io/zh_CN/latest/intro/overview.html 创建项目 scrapy startproje ...
- openstack之安全组管理
命令概览 (nova-api)[root@cc07 /]# nova help|grep secgroup add-secgroup Add a Security Group to a server. ...
- python,函数
numpy.tile():参考https://www.jianshu.com/p/4b74a367833c numpy.argsort:argsort()里面传入参数只有数组时,返回的是数组值从小到大 ...
- DocumentType类型
并不常用 nodeType 10 nodeName doctype的名称 NodeValue 值为null parentNode Document 不支持子节点 DocumentType不能动态创建, ...
- 学以致用六---Centos7.2+python3.6.2+django2.1.1 --搭建一个网站
目的,创建django project,开始django web之旅 一.创建一个project 在opt目录下创建一个project [root@gxc opt]# django-amdin. ...
- DDR II中的延时参数
CL (CAS latency) CL是从读命令发出到有效数据到DDR端口的延时,以时钟为单位.下图分别表示CL = 3和CL = 4的两种情况, 如果读命令在第n个时钟周期发出,CL = m,则读 ...
- poj 1094 Sorting It All Out 拓补排序
Description An ascending sorted sequence of distinct values is one in which some form of a less-than ...