Java安全之jar包调试技巧

Java安全之jar包调试技巧调试程序首先还是创建一个工程,将jar包导入进来调试模式的参数启动中需要加入特定参数才能使用debug模式,并且需要开放调试端口JDK5-8:-agentli

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Java安全之jar包调试技巧

调试程序

首先还是创建一个工程,将jar包导入进来

调试模式的参数

启动中需要加入特定参数才能使用debug模式,并且需要开放调试端口

JDK5-8:

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

JDK9+:

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

suspend=n表示的是启动Java应用时是否立即进入调试模式,suspend=y表示启动即暂停,suspend=n则表示启动时不需要暂停。address=*:5005表示的是Debug监听的服务地址和端口,根据需求修改,上述配置会监听到0.0.0.0

参数说明

(1) transport

指定运行的被调试应用和调试者之间的通信协议,它由几个可选值:

dt_socket:主要的方式,采用 socket 方式连接
dt_shmem:采用共享内存方式连接,仅支持 Windows 平台(暂未验证)
(2) server

当前应用作为调试服务端还是客户端,默认为 n。

如果你想将当前应用作为被调试应用,设置该值为 y;如果你想将当前应用作为客户端,作为调试的发起者,设置该值为 n。

(3) suspend

当前应用启动后,是否阻塞应用直到被连接,默认值为 y。

在大部分的应用场景,这个值为 n,即不需要应用阻塞等待连接。一个可能为 y 的应用场景是,你的程序在启动时出现了一个故障,为了调试,必须等到调试方连接上来后程序再启动。

(3) address

暴露的调试连接端口,默认值为 8000。

(4) onthrow

当程序抛出设定异常时,中断调试。

(5) onuncaught

当程序抛出未捕获异常时,是否中断调试,默认值为 n。

(6) launch

当调试中断时,执行的程序。

(7) timeout

该参数限定为 java -agentlib:jdwp=… 可用,单位为毫秒ms。

当 suspend = y 时,该值表示等待连接的超时;当 suspend = n 时,该值表示连接后的使用超时。

Java安全之jar包调试技巧

IDEA配置远程调试
Java安全之jar包调试技巧

下断点后能直接停下来。

class文件夹调试

其实也比较简单,只需要将他打包成一个jar包或者是war包,然后执行如上操作就好了。

cd src
jar -cvf test.jar *

总的来说调试还是比较重要,其实不仅仅是jar包的调试,比如还有Spring Boot(Spring Boot以jar包启动调试与上面类似)、Tomcat、weblogic这些。假设条件允许情况下,做一些审计时候,比如war包,也可以采用远程调试的方式进行审计。会更简单快捷定位一些。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119884.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 类UNIX操作系统概念

    摘要:对unixos上的一些基本概念做一个统一的梳理,以下内容转自互联网和相关书籍一进程组、会话、控制终端进程组进程组是一个或多个进程的集合。每个进程组有一个称为组长的进程,组长进程就是其进

    2021年12月25日
  • java中main方法是怎么运行的?

    java中main方法是怎么运行的?学过java的都知道main方法是学习java的开始,也是程序的入口,不过你有多少个类或程序,线程,他们的入口方法都是main()main方法是一个静态的方法,所以这个方法是属于类的,而不是对象的;在main()方法中,参数类型是“String[]args”,意味着在启动Java应用的同时,传递一个String类型的数组来定制化应用的初始化属性。执行过程:现在

  • 哪些网站需要大量资深工程师开发

    先出一道题考考你:下列哪个网站目前不需要大量顶尖高手开发A.淘宝网B.FacebookC.何问起D.百度答案:http://hovertree.com/tiku/bjaf/861yt2f7.ht

    2021年12月25日
  • Word——Word在试图打开文件时遇到错误的一种解决办法

    Word——Word在试图打开文件时遇到错误的一种解决办法Word在试图打开文件时遇到错误的一种解决办法一、遇到的情况二、解决办法 1.将此word文件压缩 2.删除此word文档 3.将压缩包解压一、遇到的情况二、解决办法 1.将此word文件压缩 2.删除此word文档 3.将压缩包解压…

  • python学习方法总结(内附python全套学习资料)

    不要再问我python好不好学了我之前做过半年少儿编程老师,一个小学四年级的小孩子都能在我的教学下独立完成python游戏,植物大战僵尸简单版,如果要肯花时间,接下来的网络开发也不是问题,人工智能也可以学个调包也没啥问题。。。。。所以python真的是想学就一定能学会的!!!!——————–华丽的分割线——————————–…

  • 一天入门51单片机教程

    一天入门51单片机教程本套教程共3节课程,熟悉这3节课程的话,你已经入门51单片机了。下面是内容正文单片机学习的第一步,什么是单片机最小系统?我来打个比喻吧.我们都知道,人的大脑是可以控制眼耳口鼻,手脚,全身等等,这就说明,大脑是我们人体的控制中心,人体能控制的地方,都是由大脑管理的..而单片机就像我们的大脑,作为一个控制中心,去控制我们想要控制的东西...为什么要控制呢?好像一成不变枯燥的工作,如果是人处理的话,做的时间长一点,他会说累,说无聊,而单片机则不会,只要你给它编写好程序,它会默默无闻地重复

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号