草庐IT

DEBUGGING

全部标签

java - 如何解释 Java 线程堆栈?

符合这个问题:Howtogetstacktraceofathread我想知道是否有人可以指出有关解释用jstack提取的Java线程堆栈的信息。我的情况是,我有一个在GlassFishv2.1.1上运行的JavaEE5应用程序,它会定期挂起(每天至少2-3次)。要让它再次运行,我必须终止Glassfish进程并启动域再次。应用程序通常会变得越来越慢,直到它最终完全挂起。一旦它挂起,我就无法获得线程堆栈。我已经能够获得一个线程堆栈,因为它变得越来越慢,但我无法找到问题或已挂起的线程。这是最新的线程转储:http://issues.i2m.dk/attachments/66/threads

java - 用于 emacs 的最佳 Java 工具

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。我是emacs的长期用户,现在大约有1/2的时间用在Java上。什么是最好的emacs库调试Java代码完成/智能感知Javadoc浏览?

java - 在 Java 中设置断点

在Java中设置断点是如何工作的?它只是基于源文件名和行号吗?类名或方法名是否也包含在内?如果我的调试器中有旧版本的源代码并设置了一个断点,当我单步执行时光标会关闭。它能有多远?它会进入错误的方法(如果该文件中有多个类,甚至是错误的类)吗?当JVM中有多个同名类时会发生什么(如果您有多个类加载器,就会发生这种情况)?他们都得到断点了吗?在Web应用程序容器中,我可以只为一个Web应用程序(而不是其他)设置断点吗?其中有多少是特定于IDE的,有多少是由JVM提供的调试接口(interface)决定的?例如:在Eclipse中,我可以根据变量的值设置条件断点。这只是Eclipse在JVM中

java - 调试器不会在 Intellij IDEA 中停留在源代码处

我有一个相当奇怪的问题,我无法用IntellijIDEA解决。我正在使用org.apache.james.mime4j包解析电子邮件文件,但我的邮件文件的格式不兼容Date:header。所以我从mime4j源代码创建了模块,并从我的磁盘中删除了mime4jjar。我找到了一个进行解析的地方。当我将System.out.println("Something")放在那里时,我会在我的控制台中看到它。但是当我在println的行上放置一个断点时,它不会停止。(但它在我的main()函数中停止了)。您知道为什么会发生这种情况吗?我已经使我的缓存无效。我使用IDEA11.1.2。

java - IntelliJ IDEA 13 调试器不会在 Maven 项目的 Java 断点处停止

我在System.out.println("test")命令所在的行上有一个断点。我相信命令是通过执行到达的,因为我看到了打印的字符串“test”。但是断点被忽略了。断点始终是一个红色圆圈,没有勾号或叉号。我认为当IDEA认为该类未加载时,这是一个问题,而它是,因为命令已执行。我可以在各种情况下重现它:当我按下调试时(使用maven配置installexec:exec-DforkMode=never)远程调试-我在控制台中以Debug模式运行maven目标:mvnDebuginstallexec:exec-DforkMode=never或mvnDebuginstallexec:exec

java - 调试的原理是什么?

这个问题在这里已经有了答案:Howdoesadebuggerwork?(7个答案)关闭8年前。我学了几年编程,经常用到debug,但还是不懂核心原理debug,它是如何工作的?singlelinedebugging(stepinto)是如何实现的?以java语言为例。CPU为调试实现做了什么?JVM为调试实现做了什么?eclipse对调试实现做了什么?可能是我上面列出的三个东西与调试无关。我只是猜到了。我google了一段时间,没有得到对我有用的东西(当然,调试本身很复杂),我希望更简单的解释。谢谢。

java - 在 Eclipse 中调试时如何跳过 JRE 代码?

在Eclipse中调试时,我步入(F5)语句,如下所示,encryptedBytes=LightWeightEncryptor.encrypt(messageBytes,password.toCharArray());调试器进入JRE方法String.toCharArray(),但我希望它跳过它并进入我自己的代码LightWeightEncryptor.encrypt。我厌倦了不得不跳出JRE代码并返回到我自己的代码。我见过很多进入JRE代码的方法,但我找不到避免它的方法。 最佳答案 尝试Eclipse菜单:Window->Pref

java - 跳过断点,因为它发生在调试器评估中 - Intellij IDEA

当我尝试在我的项目的任何方法的任何执行行上选择一个断点,并且我知道该方法应该被调用例如4次时,Intellij跳过该断点3次并且仅在最后一次调用时停止。方法示例(端点类):@PayloadRoot(localPart="getRelatedCIs",namespace="http://www.projectname.com/ws")publicGetRelatedCIsResponsegetRelatedCIs(GetRelatedCIsrequest)throwsDataAccessException,WebServiceException{GetRelatedCIsResponse

java - 断点命中 Hashmap.put() 一个简单的 Hello World 程序

程序简单:publicclassHelloWorld{publicstaticvoidmain(Stringargs[]){System.out.println("HelloWorld");}}现在我在HashMap.class中的函数put(Kkey,Vvalue)中设置断点publicVput(Kkey,Vvalue){if(table==EMPTY_TABLE){inflateTable(threshold);}if(key==null)returnputForNullKey(value);inthash=hash(key);然后我开始调试HelloWorld.class,它会遇

java - 生产JVM的安全调试

我们有些应用程序有时会进入不良状态,但只能在生产中使用(当然!)。尽管进行堆转储可以帮助收集状态信息,但使用远程调试器通常更容易。设置起来很容易-只需将其添加到他的命令行中:-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=PORT似乎没有可用的安全机制,因此在生产中打开调试将有效地允许任意代码执行(通过hotswap)。我们混合使用在Solaris9和Linux(RedhatEnterprise4)上运行的1.4.2和1.5SunJVM。我们如何启用安全调试?还有其他方法可以实现我们的生产服务器检查目标吗?