首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java远程调试(Remote Debugging)的那些事

配置 远程调试包括两个步骤: 启动Tomcat启用远程调试 用 IDE (这里用IntelliJ IDEA)要能够调试远程Tomcat应用 Tomcat启用远程调试 这里有多种方法可以做到,根据tomcat...: 指定运行的被调试应用和调试者之间的通信协议,(ie: transport=dt_socket) 远程被调试应用开通的端口,(ie: address=1043), 可定义其他端口,比如9999 server...如果设成 y, 则应用将暂停不运行,直到有调试者连接上 suspend=y的一个比较适用的场景是,当debug一个阻止应用成功启动的问题时, 通过suspend=y可以确保调试者连上来之后再启动应用,...保存后,开始 debug 启动远程调试,如果运行成功显示如下的界面,然后源码加断点开始调试。...简单来说, jdwp agent 建立运行应用的 JVM 和调试者(本地或者远程)之间的桥梁。既然他是一个Agent Library, 它就有能力拦截运行的代码。

8K20

Android远程调试的探索与实现

JDWP协议 JDWP协议是用于调试器与目标虚拟机之间进行调试交互的通信协议,它的通信会话主要包含两类数据包: Command Packet:命令包。...JDWP启动过程 我们看下Android 5.0系统启动一个应用时是如何启动JDWP Thread的。...如果不做任何改变直接把它们当成C代码,结果将导致一个错误:C语言不允许两个函数同名。...但从 Android 7.0 开始,系统将阻止应用动态链接非公开 NDK库,详情请参考《Android 7.0行为变更》,强制调用产生如下Crash: java.lang.UnsatisfiedLinkError...一般为了应用发生崩溃时能获取到调用栈中每个函数对应的行号,需要保留LineNumberTable,同时为了减少包体积放弃LocalVariableTable。

2.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

高效开发:IntelliJ IDEA天天用,这些Debug技巧你都知道?

另外,Step In 命令也跳过 jdk 自带的系统方法,如果要跟踪系统方法的执行细节,需要使用 Force Step In 命令。...而且 jdb 不需要安装下载,它是 JDK 自带的工具( JDK 的 bin 目录中,JRE 中没有)。...jdwp 的参数里貌似提到了 socket,并有 address=127.0.0.1:20060 这样的 IP 地址和端口号,而且下面的 Connected to the target VM 也似乎表示调试器连接到了这么一个网络地址...调试者和被调试者之间,调试命令和调试结果,都是通过 JDWP 的通讯协议传输的。...说白点就是,你如果要很准确的测量粒子的位置,那么就不能准确的测量粒子的动量;如果要很准确的测量粒子的动量,那么粒子的位置就测不准;正是由于测量本身,导致系统受影响。

2.1K11

RIP两个版本:RIP-1和RIP-2

支持的地址:RIP-1仅支持IPv4单播地址不支持其他地址如IPv6。缺陷:RIP-1存在一些问题,比如慢收敛、最大跳数限制、不支持变长子网掩码(VLSM)等,这些都限制了其大型网络中的应用。...RIP-2使用多播地址224.0.0.9发送路由更新,只有订阅该多播组的邻居路由器会收到更新。这种方式减少了不必要的带宽消耗。支持的地址RIP-1仅支持IPv4单播地址不支持其他地址。...RIP-2不仅支持IPv4,还支持IPv6等其他地址。这使得RIP-2现代异构网络中的适用性更强。子网掩码支持RIP-1不支持可变长子网掩码(VLSM),只能使用固定长度的子网掩码。...RIP-2收敛速度方面有所改进,但仍低于更高级的路由协议如OSPF和IS-IS。RIP-1和RIP-2具体应用场景中的对比小型网络环境RIP-1更适合应用在小型网络中,如小型企业或家庭网络。...RIP-1和RIP-2的配置和调优RIP-1和RIP-2的基本配置都包括路由器接口上启用RIP路由协议,并指定要advertise的网络。

11610

Java安全之jar包调试技巧

:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 JDK9+: -agentlib:jdwp=transport=dt_socket,server...address=*:5005表示的是Debug监听的服务地址和端口,根据需求修改,上述配置监听到0.0.0.0。...参数说明 (1) transport 指定运行的被调试应用和调试者之间的通信协议,它由几个可选值: dt_socket:主要的方式,采用 socket 方式连接 dt_shmem:采用共享内存方式连接...大部分的应用场景,这个值为 n,即不需要应用阻塞等待连接。一个可能为 y 的应用场景是,你的程序启动时出现了一个故障,为了调试,必须等到调试方连接上来后程序再启动。...(7) timeout 该参数限定为 java -agentlib:jdwp=… 可用,单位为毫秒ms。

1.2K30

为什么需要对jvm进行优化,jvm运行参数之标准参数

本地开发环境中我们很少遇到需要对jvm进行优化的需求,但是到了生产环境,我们可能将有下面的需求: 运行的应用“卡住了”,日志不输出,程序没有反应服务器的CPU负载突然升高 多线程应用下,如何分配线程的数量...…… 说明:使用的jdk版本为1.8。 jvm的运行参数 jvm中有很多的参数可以进行设置,这样可以让jvm各种环境中都能够高效的运行。绝大部分的参数保持默认即可。...JVM启动的时候根据硬件和操作系统自动选择使用Server还是Client类型的JVM。 32位操作系统 如果是Windows系统,不论硬件配置如何,都默认使用Client类型的JVM。...64位操作系统 只有server类型,不支持client类型。...如有错误❌疑问欢迎各位指出。 主页:共饮一杯无的博客汇总‍ 保持热爱,奔赴下一场山海。

43310

Java 特性预览

我们都知道 Java 被很多大中小系统中使用,哪怕是实现中的一点点瑕疵或者糟糕的糟糕的设计都会带来很多意想不到情况和损失。又因 Java 系统的广泛应用,这种损失通常是非常巨大的。...下面是 JEP-12 有关预览特性的定义,官方的链接地址:https://openjdk.org/jeps/12。如你有兴趣的话,可以直接阅读官方的原文。...如果当前使用的 JDK 版本是不支持的预览功能的,那么使用上面的命令将会得到错误的提示。...例如 JDK 14 的版本是不支持预览的,命令行中,如果我们把命令行的中的 13 替换成 14 的话,都那么编译器将会提示我们错误。...实际使用的时候,我们确实也遇到一些,这些情况就是项目使用的 JDK 版本比较低,但是下载的 JDK 编译的 Jar 包版本又比较高,这就导致了无法编译的情况。

6710

【Kafka】Kafka-Server-start.sh 启动脚本分析(Ver 2.7.2)

回到Kafka的服务端参数,KafKa最初的服务端启动脚本中,此参数实际为-XX:+DisableExplicitGC,但是后续被指出影响直接内存的回收性能,并且很可能导致直接内存无法被回收!...MaxInlineLevel java 有一个参数 -XX:MaxInlineLevel(JDK14之前 默认值为 9),这个值JDK14之后默认值改为15。...JDK 5的时候引入,Kafka设置启动参数让Kafka应用程序获得JMX远程调用的支持。...注意这里划分了很多个子模块,所以使用了for循环加载到CLASSPATH当中,这会导致最终产生的命令非常长。 # run ....java -agentlib:jdwp=transport=dt_socket,server=y,address=__ 调试远程服务器运行的JAVA应用程序,Window中和

1.3K100

系统app调试以及jdb调试

JDWP 协议 首先让我们认识一下什么是 JDWP(Java Debug Wire Protocol),说白了就是 JVM 或者类 JVM 的虚拟机都支持一种协议,通过该协议,Debugger 端可以和目标...调试 Android 应用程序这一场景,Debugger 一般是指你的 develop machine 的某一支持 JDWP 协议的工具例如 Android Studio 或者 JDB,而 Target...针对Android设备,可参考下面这个图, JDWP Agent Android 手机上应该是指 adbd 进程。...JDWP 协议的报文格式,JDWP 协议中主要有两种报文:Command packet 和 Reply packet,command packet 就是我们上面所说的请求报文,reply 自然就是对 command...UI定位 记录AS中的一个错误 记录AS中的一个错误,由于移除插件导致再次启动AS的时候出现了下面的错误: missing essential plugin org.jetbrains.android

2.3K00

ip命令

-force: 不要在批处理模式下因错误而终止ip,如果在执行命令期间发生任何错误,则应用程序返回码将为非零。...-l, -loops : 指定ip addr flush逻辑放弃之前尝试的最大循环数,默认值为10,0表示循环直到删除所有地址。...-f, -family : 指定使用的协议协议标识符可以是inet、inet6、bridge、ipx、dnet或link中的一个,如果该选项不存在,则根据其他参数猜测协议,如果命令行的其余部分没有提供足够的信息来猜测家族...,ip将退回到默认的ip设置,通常是inet或any,link是一种特殊的标识符,不涉及任何网络协议。...示例 查看网络接口信息,例如IP地址,子网等。 ip addr show 要查看eth0网卡信息。 ip addr show eth0 启用网络接口。

70210

一件程序员必备武器的诞生

“很简单,如果它们两个一个JVM中,那被调试程序的独立性就不能保证了,可能会受到调试器的影响。举个极端的例子,调试器占据了很多Heap空间,导致被调试程序OOM了.....”...这个协议的名称就叫 (JDWP)Java Debug Wire Protocol 吧。” IO大臣看到JVM大臣的JVM TI,心中痒痒,也急不可耐地提出了创造了属于自己的缩写。...05 调试器 GUI大臣看到这这张图,立刻意识到一个问题:“如果我们把JVM关于调试的能力使用JDWP这个协议的方式暴露出来,那调试器可以使用任意语言来编写啊!”...看到JVM大臣提出了JVM TI ,IO大臣提出了JDWP,自己没有,怎么陛下那里交差?GUI大臣赶紧说:“嗯,我希望这个接口叫做 JDI( Java Debug Interface),怎么样?”...我知道这代码的背后其实会用JDWP协议向JVM TI发出请求,因为所有的数据都在那里,对不对?” JVM大臣赶紧说:“陛下圣明,一下子就点透了我们几个小心思。”

36540

JVM优化系列-------

我们为什么要对jvm进行优化 本地开发环境中我们很少遇到需要对jvm进行优化的需求,但是到了生产环境,我们可能将有下面的需求: 运行的应用“卡住了”,日志不输出,程序没有反应 服务器的CPU负载突然升高...多线程应用下,如何分配线程的数量?...(说明:本系列文章使用的jdk版本Windows为1.8,Linux是1.9) 了解jvm的运行参数 jvm中有很多的参数可以进行设置,这样可以让jvm各种环境中都能够高效的运行。...64位操作系统 1.只有server类型,不支持client类型。...然而,很多应用在使用-Xcomp也会有一些性能损失,当然这比使用-Xint损失的少,原因是-xcomp没有让JVM启用JIT编译器的全部功能。

72180

BGP

Notification报文:当BGP检测到错误状态时,就向对等体发出Notification报文,之后BGP连接立即中断。...当BGP检测到网络中的错误状态时(例如收到错误报文时),BGP会发送Notification报文进行报错,BGP连接随即中断。示意图见图1 邻居建立过程图。...可选过渡(Optional transitive):AS之间具有可传递性的属性。BGP设备可以不支持此属性,但它仍然接收这类属性,并通告给其他对等体。...BGP-IPv4组播地址视图、BGP-MVPN地址视图、BGP-IPv6 MVPN地址视图、BGP-MDT地址视图等组播相关地址可以传输跨AS的路由信息,主要应用于MBGP、BIER、NG MVPN...BGP-VPNv4地址、BGP-VPNv6地址、BGP-VPN实例视图、BGP多实例VPN实例视图、BGP-L2VPN-AD地址视图、BGP-L2VPN-AD地址视图等VPN相关地址主要应用

1.7K20

LR常见问题整理

程序上存在数据库的问题 2>应用服务没有死 应用服务参数设置问题 例如: 许多客户端连接Weblogic应用服务器被拒绝,而在服务器端没有错误显示,则有可能是Weblogic...4.LoadRunner请求无法找到:录制Web协议脚本回放脚本的过程中,会出现请求无法找到的现象,而导致脚本运行停止。...错误分析:出现此错误的原因是LoadRunner8.0录制Web Services协议的脚本时存在一个缺陷:如果服务器的操作系统是中文的,VuGen自动将WSDL文件的头改为<?...程序上存在数据库的问题   2> 应用服务没有死   应用服务参数设置问题   例如:   许多客户端连接Weblogic应用服务器被拒绝,而在服务器端没有错误显示...错误分析:出现此错误的原因是LoadRunner8.0录制Web Services协议的脚本时存在一个缺陷:如果服务器的操作系统是中文的,VuGen自动将WSDL文件的头改为<?

2.1K40

ICMP (互联网控制消息协议 )是什么

互联网控制消息协议(英语:Internet Control Message Protocol,缩写:ICMP)是互联网协议的核心协议之一。...技术细节 ICMP是RFC 792中定义的互联网协议之一。通常用于返回的错误信息或分析路由。ICMP错误消息总是包括了源数据并返回给发送者。 ICMP错误消息的例子之一是TTL值过期。...虽然ICMP是包含在IP数据包中的,但是对ICMP消息通常会特殊处理,和一般IP数据包的处理不同,而不是作为IP的一个子协议来处理。...很多时候,需要去查看ICMP消息的内容,然后发送适当的错误消息到那个原来产生IP数据包的程序,即那个导致ICMP消息被发送的IP数据包。 很多常用的工具是基于ICMP消息的。...IP头部0 IP 报首部参数错误 ●1 丢失必要选项 ●2 不支持的长度 13 - 时间戳请求0 时间戳请求● 14 - 时间戳应答0 时间戳应答● 15 - 信息请求0弃用信息请求● 16 - 信息应答

67510

常见问题之Java—— 远程调试时提示:timeout during handshake

常见问题之Java—— 远程调试时提示:timeout during handshake 背景 日常我们开发时,遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列...开发环境 系统:windows10 JDK:openjdk11 开发工具:IDEA 教育版 框架:SpringMVC 包管理:Maven 内容 错误 timeout during handshake 原因分析...: 1、造成这种情况应为本地IDEA连接远程调试端时没有有效连接进入导致。...检查你的防火墙是否将其进行了过滤,更改了其中请求包中的内容导致超时。...本文声明: 本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

99420

供应链安全系列-攻击编译阶段(一)

编译阶段的需要关注的事情首推JDWP漏洞, JPDA 体系中,作为前端(front-end)的调试者(debugger)进程和后端(back-end)的被调试程序(debuggee)进程之间的交互数据的格式就是由...JDWP 来描述的,它详细完整地定义了请求命令、回应数据和错误代码,保证了前端和后端的JVMTI 和 JDI 的通信通畅。...pom.xml文件方面是可以很方便的隐藏恶意脚本、第三方组件的。 使用maven的平台首先想到的攻击点肯定是测试用例,执行mvn test命令时,运行测试用例的源码代码。...核心入口位置是/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/tools.jar!...华为云cloudbuild,root不支持反弹shell。 ? tencent hub 支持以root权限反弹shell。 ?

1.2K20

关于apple上架常见问题汇总

我们想请我们的应用程序开发人员将应用程序上传到苹果商店,因为他们不想给我们应用程序的源代码。我们知道我们需要提供我们与内容供应商之间的协议,以证明内容是合法的。...exportArchive:Xcode Server 不支持应用程序上传到 Apple。我正在尝试将持续集成添加到我们当前的应用程序构建部署过程中。...但是,我的机器人在生成我签名的存档后返回一个错误,上面写着:“exportArchive:Xcode Server 不支持应用程序上传到 Apple。”。我有点失落。...如果设置为“上传”,它会吐出上面的错误:“exportArchive:Xcode Server 不支持应用程序上传到 Apple。” 因此,我将其保留为“出口”。... Apple 拒绝后上传我的应用程序的新版本时,如何更改上传的版本号?当我尝试上传修改后的应用程序时,它不允许我并且我收到一条错误消息“错误 ITMS-4238:“冗余二进制上传。

1.7K30
领券