草庐IT

虚拟调试

全部标签

java - 准备好的语句仅在不调试时抛出异常

我使用这段代码将一些数据插入数据库:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:war_odbc");PreparedStatementst=con.prepareStatement("INSERTINTOActors(FirstName,LastName,Age)VALUES(?,?,?)");st.setString(1,"Robert");st.setString(2,"deNiro");st.setInt(3,45);st.e

java - 我可以从 Eclipse/IDE 调试器连接到远程机器上的 jsadebugd 进程吗?

我有一个在Linux机器上运行的java进程,但它无法在Debug模式下启动/重新启动。我读到了jsadebugd命令并启动守护进程,但我想从IDE(可能是Eclipse)调试器或YourKit或jconsole连接到它。我怎样才能做到这一点?远程JVM是1.6+。 最佳答案 既然您提到了Yourkit和其他工具,我假设您真正想要做的是查看应用程序内部的对象状态。有几个选项,但我不认为它能让你像Eclipse或其他调试器那样设置断点(尽管我很想听听是什么限制你在Debug模式下启动进程-技术?过程?)您是否尝试连接:VisualVM

java - 当 Body 不可分配给类时如何调试 JMS?

我正在使用JavaEEJMS队列。我将对象发送到队列中,然后使用MDB接收它们。将消息正文(使用getBody())读入对象时出现以下异常:javax.jms.MessageFormatException:Bodynotassignabletoclass...有什么方法可以从中得到一个更具描述性的错误来说明为什么它不可分配?我还尝试进入Debug模式,看看什么样的Message对象到达了MDB,但据我所知它是序列化的,所以它并不是很有用。对象类型在发送到队列之前在调试器中被正确识别。附加信息:如果我手动创建一个空对象并发送它,它会被正确识别。生产对象来自REST端点并包含许多属性,并在

java - 'source code does not match the bytecode' 使用IDEA调试JdbcTemplate

当我使用IDEA调试JdbcTemplate源码时,IDE提示:'Sourcecodedoesnotmatchthebytecode'截图:我使用mvn来管理我的项目;我的mavenpom配置是:org.springframeworkorg.springframework.orm3.0.5.RELEASE 最佳答案 如果您有多个依赖项,而这些依赖项本身具有相同依赖项的不同版本,也会发生这种情况。JetBrains网站上的这篇文章展示了如何在首选项中启用备用源切换器。https://intellij-support.jetbrains

java - 使用 Eclipse 调试 OpenJDK 源代码

在我的项目中,我想使用eclipse调试OpenJDK版本8的C/C++源代码。为此,我做了以下工作:使用此readme使用--with-debug-level=slowdebug编译OpenJDK8.将sourcesmakefile项目导入到eclipse中创建了一个eclipse运行配置,针对已编译的OpenJDK的java.exe执行gdb并针对示例java程序。在此配置中,我附加了JDK源代码目录路径,以便eclipse能够将调试符号转换为源代码行并向我查看它们(显然)通过这种方法,我可以通过java.c等文件的代码进行调试。我的问题是不知何故我仍然无法通过native代码进行

java - 如何从 Sublime Text 编辑器调试 Java 应用程序

有时我正在为相当大的Java应用程序做简单的修复,我不想为此任务打开Eclipse。Eclipse启动时间很长,并且由于该项目是由大量子项目构建而成的,而这些子项目无论如何都是由Maven构建的,因此在Eclipse可用之前需要很长时间(至少在不耐烦的Java开发人员规模中是这样)。几乎我需要的一切都可以在SublimeText编辑器中完成,但是Eclipse的亮点之一是调试器。我的工作流程是:进行修复,然后使用调试器测试它正在运行的应用程序(在服务器上),以检查是否一切正常。那么是否有任何Sublime插件或其他非IDE解决方案可以轻松调试Java应用程序。注:我看过thispost

java - Java虚拟机的启动时间由什么组成?

有时我听到人们讨论Java的启动时间。这似乎是一个重要的性能方面。但它到底是什么?它由什么组成?动态类加载导致的类加载时间?或者在只编译JVM中的第一次编译开销?还是其他原因导致Java程序执行初期“缓慢”?那么,第二个问题就是如何衡量Java程序的启动时间?从哪一点到哪一点的持续时间称为启动时间?我不知道我的问题是否以正确的方式提出;如果没有,请告诉我。谢谢! 最佳答案 启动时间没有正式定义。实际上,实际IT中使用的大多数术语都没有正式定义。(或者忽略正式定义。)但粗略地说,就是从应用程序启动到它准备好做一些有用的事情的时间。启动

java - 由于编译的类文件中缺少调试信息而导致的 Paranamer 错误

我正在尝试在WebSphere上部署的应用程序上运行springbatch。当我使用Eclipse运行批处理时,一切都运行良好,但是当我在WebSphere上部署的应用程序中运行相同的批处理时,它会出错com.thoughtworks.paranamer.ParameterNamesNotFoundException:ParameternamesnotfoundforexecuteMethodatcom.thoughtworks.paranamer.BytecodeReadingParanamer$TypeCollector.getParameterNamesForMethod(Byt

java - 在 IntelliJ 中调试 Ant 项目时出现行号信息不可用错误

我正在处理一个相当古老的JavaAnt项目,我已将其导入IntelliJ,它以前是使用Eclipse开发的。该项目由少量的servlet组成。我正在尝试从IntelliJ进行调试。IntelliJ可以连接到端口8000上的远程Tomcat,但是当我尝试添加断点时,出现以下可怕的错误:Linenumbersinfoisnotavailableinclasscom.package.blah.SomeClass根据SO和其他地方的建议,我将Ant构建脚本修改为以下内容:我将debug和debuglevel行添加到上面调用javac的目标。另外,我尝试运行javap-vSomeClass.cl

Java:如何使用虚拟节点或将节点标记为虚拟节点

题目要求你删除链表中的中间节点,只给出那个节点。解决方法是将middle.next.element复制到middle.element,然后通过middle删除middle.next.next=middle.next.next有一种特殊情况,即middle.next是最后一个节点。答案是您可以将中间节点标记为虚拟节点。我不熟悉“虚拟”这个概念。如何将节点标记为虚拟节点以及在其他情况下如何使用虚拟节点?一般情况下虚拟数据如何? 最佳答案 这个问题没有统一的答案。链表的实现必须已经定义了虚拟节点的概念并一致地使用它。实现这一点的典型方法是