modbus调试时间超时_Java调试器和超时

modbus调试时间超时

在代码中存在超时的情况下如何使用调试器。

我的调试器王国!

因此,您一直忙于编写一个项目,一切顺利,直到出现错误为止。 您可以进入开发人员的工具箱,然后拔出调试器。 很棒–您可以设置断点,可以在出现异常时中断,还可以在运行时检查表达式。 无论等待什么挑战,您都可以肯定,调试器将为您提供帮助!

不幸的是生活并不那么轻松。 许多代码都需要某种形式的超时 -一段时间后发生的事件。 问题在于超时会破坏调试体验。 您坐在那里看着断点,想着“现在为什么x是2而不是1?” of! 超时开始,您将无法继续。 更糟糕的是,JVM本身退出了! 因此,您要经历增加超时,调试和解决问题的过程。 之后,您要么将超时返回到其原始设置,然后必须再次执行相同的繁琐过程,要么将修复意外地提交到源代码树中,从而破坏了测试甚至是生产。 在我看来,这似乎并不理想。

“出于某种原因,这是超时病,不信任任何朋友”

人们引入超时有很多原因。 我在下面列出了一些优点和缺点,而且我敢肯定,您自己还会想到一些。

  • 检查在一定时间内是否已响应异步事件。
  • 避免饿死基于时间的资源,例如线程池。
  • 您的比赛条件需要快速解决。
  • 您正在等待事件发生,并决定用硬编码假设将花费多长时间。 (在测试中最常见)

现在很明显,如果你超时被引入作为一个黑客那么它是一个很好的时间来清洁的童子军的代码。 如果您需要依赖于测试中发生的事件,则应将这些测试视为API的客户端,并能够知道事件何时发生。 这可能涉及注入在事件发生时被调用的模拟程序,或订阅事件流。 如果您有比赛状况,请解决它! 我知道这很痛苦而且很辛苦,但是您是否真的想让代码库中的定时炸弹准备好在凌晨3点生成支持电话?

管理超时

前面已经说过,我们应该删除超时的不良用法,很显然,超时是完全合法的用法。 它们在事件驱动和异步代码中尤其常见。 能够与他们一起调试仍然会很好。 不管其他因素如何,良好实践都是为了使超时标准化为可在运行时设置的配置属性。 这样,当您在本地IDE与生产环境中运行时,可以轻松更改它们。 它还可以帮助管理从不同的硬件设置中遇到的不同性能属性。

将超时从代码中外部化为配置后,然后可以检测代码是否在调试器中运行,并在这种情况下将超时设置为明显更长的时间。 这样做的技巧是认识到调试器涉及运行Java代理,该代理会修改运行该程序的程序的命令行参数。 您可以检查这些命令行参数是否包含正确的代理匹配器。 下面的代码片段显示了如何执行此操作,并且已经过测试,可以在Eclipse和Intellij IDEA下工作。

RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
String jvmArguments = runtimeMXBean.getInputArguments().toString();
boolean hasDebuggerAttached = jvmArguments.contains("-agentlib:jdwp");

我可以理解为什么有些人也将其视为黑客,您通过查看自己的命令行参数然后围绕它进行调整,从而积极地发现有关您环境的某些信息。 从我的角度来看,我发现这是一种有用的技术。 它确实使在存在超时的情况下调试起来更加容易。

翻译自: https://www.javacodegeeks.com/2014/07/java-debuggers-and-timeouts.html

modbus调试时间超时

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

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

相关文章

64位微处理器_MCU芯片市场研究:主导8位MCU,但32位MCU受欧美和日本高度垄断

↑ 点击上方 “ 财经热闻解析 ” 关注我们从古老的用电子管堆出来的成吨的逻辑门到现在的超级数据中心,电子技术的发展走过了一代又一代,自然而然,各种芯片也在百花齐放。到了今天,芯片早已成了一个大家族。这么多芯片&#xff0c…

java web容器原理_javaWeb工作原理

http:无状态协议,客户端和服务器之间不需要建立持久的连接,通信完就断开。http的工作流程:1.客户端和服务器建立连接2.客户端发送请求3.服务器响应内容4.服务器关闭连接,客户端解析服务器发送回来的内容http请求&#…

支持Java 8

尽管Java到目前为止已经发布了版本13,但是有许多生产安装都与Java 8一起运行。作为专家,即使是最近几天,我也多次开发Java 8代码,我必须为这不是Java 6而感到高兴。另一方面,作为开放源代码开发人员,我可以…

mooc作业怎么上传附件_怎么以最低价格入门hifi音响?

方案一:音源 用电脑某宝一个 DIY的DAC 大概200-300元某宝一个迷你的DIY前级功放 大概200-300元某宝一个后级小甲类功放 1969小甲 大概600-1500音箱 5寸或者6寸书架箱 品牌的可以考虑 q牌 2000左右 或者某宝DIY组装的惠威 惠威m1 也是20…

java把一段英文拆成单词_java编程题,输入一段英文文章,单词之间都已经用空格分隔,本人想以每5个单词为一行输出,怎么写?请指教...

我的问题是不会输出5个单词为一行.求指导!!我的代码是以下:importjava.io.*;importjava.util.*;publicclassTest2{publicstaticvoidmain(String[]args)throwsIOException{InputStreamR...我的问题是不会输出5个单词为一行.求指导!! 我的代码是以下:import java.io.* ;import ja…

jsp标签 判断 余数_舟山铝箔纸不干胶标签制作-雷宝实业

卷筒纸不干胶印刷时,纸张的走向与一般印刷方法不同,它是以轴向跳格移动实现套印的,即在印版滚筒上同时装上几套印版,当不干胶在压印平台上每跳移一次,印版滚筒水平方向作往复旋转一次,就可实现印刷一个颜色…

java input是什么意思_java中的【...】表示什么意思

...表示可变长参数,就是说这个位置可以传入任意个该类型参数,简单来说就是个数组。(视频教程推荐:java课程)代码示例:1. testPoints(7);2. testPoints(7,9,11);3. testPoints(new Integer[]{7,9,11});1. public static void testP…

jstat –分析

jstat是一个简单的实用工具,在JDK中存在,用于提供与JVM性能相关的统计信息,例如垃圾收集,编译活动。 jstat的主要优势在于,它可以在运行JVM且无需任何先决条件的情况下动态捕获这些指标。 这是什么意思? 例…

微软电脑适合什么人用_#微软surface pro使用心得# 大学生挑电脑参考/平板与电脑二合一到底买的是什么...

surface pro6 使用一年体验。可以作为如果要买pro7 的一个参考。(全是我个人的使用体验与心得,非科普与专业,问我专业的问了我也不知道怎么回答)(pro7更加具体的可以去B站看大佬们的开箱)以下是我的个人想法…

linux 运行java jar_linux运行jar包、查看jar包进程、停止jar包

要运行java的项目需要先将项目打包成war包或者jar包,打包成war包需要将war包部署到tomcat服务器上才能运行。而打包成jar包可以直接使用java命令执行。在linux系统中运行jar包主要有以下四种方式。一、java -jar XXX.jar这是最基本的jar包执行方式,但是当…

et超排真正免狗能用版 真正好用的东西_真正合格小户型,收纳都特别能“装”...

原标题:真正合格小户型,收纳都特别能“装”说起来,小户型的生活在近些年来才流行起来,毕竟,房价的日益升高,想在城市有个家的青年们,只能选择小户型。其实,房子虽小,收纳…

java读取文件并显示_JAVA读取本地文件并显示到页面中

javaweb图片的显示RequestMapping(value"showImg")ResponseBodypublic void ShowImg(HttpServletRequest request,HttpServletResponse response) throws IOException{//String imgFile request.getParameter("imgFile"); //文件名// String path UrlUtil…

javafx html5_JavaFX技巧5:可观察

javafx html5即使在整个NSA监视的这段时间,实现JavaFX控件时也要牢记可观察性,这仍然是一个好主意。 与Swing相比,这在JavaFX中很容易实现。 旧时光 来自Swing,我习惯于花费大量精力和时间来使自定义控件变得可观察。 通常需要添…

苹果电脑怎么投屏到电视_tcl电视怎么投屏

除了看电视,现在的智能电视产品还支持手机投屏功能,如果在使用TCL电视,可以借助第三方软件实现手机投屏的功能,下面就为大家介绍一下,tcl电视怎么投屏。tcl电视怎么投屏步骤1、打开电视自带的应用商店。步骤2、搜索LBT…

重复码

介绍 在我们的Java应用程序中复制/粘贴代码通常不好,但是有时这是不可避免的。 例如,项目License3j在Feature类中为其支持的每种XXX类型提供了一个isXXX方法。 在这种情况下,我们要做的就是写 public boolean isBinary() { return type Type…

sap tcode 功能对照表_Python for Ev3练习amp;Minstorms对照表02

大家好。我是欧文今天给大家分享python for Ev3的练习代码以及python中对应的Ev3Minstorms软件模块对照表。这个练习题都相对基础。主要是用来练习用的。给大家分享的代码也是比较简单的,不过实现方法都是不唯一的。主要的目的是练习和学习。练习代码如下&#xff1…

大楼通信综合布线系统_某办公大楼综合布线系统设计实例,小白可以借鉴一下,大神请绕路...

xxx办公大楼综合布线系统是一个包括内部数据语音通信、外线电话线路接入管理系统、办公用强电电气配电系统、电缆电视系统等内部的复合布线系统,在会议室还有一个小型的供音响系统设备使用的专用布线系统。各子系统的基本情况及主功能如下:强电配电系统&…

java8日期_Java8日期与时间

我们知道Java8一个比较大的改动就是引入了新的表示日期和时间的API,还是很有必要抽点时间了解一下基本的用法。Java8之前的问题在讨论Java8的API之前,我们先看看原来API的问题。我们知道Java8之前只有java.util.Date和java.util.Calendar来表示和处理时间…

javaone_为JavaOne 2014做好准备!

javaone保持那个想法! 是的,我希望我能在Java One 2014上做演讲-但我现在只值得在梦里做到这一点! 但是,没有什么阻止我遵循Java One并跟踪有关我最喜欢的主题的会话/对话。 我希望Oracle能够像我们2013年版那样,像我…

代码逻辑分析_双11模块79.34%的前端代码是怎样智能生成的?

作者|妙净、波本最近几年,AI 渗透到开发领域的方方面面。在前端领域,设计稿生成代码(简称 D2C)就是一个例子。其目标在于通过 AI 助力前端提效升级,杜绝简单重复性的工作内容。今年“双十一”,阿里的 D2C 覆盖了天猫淘…