Tag: 调试

如何检测OutofMemoryError的原因?

我抱怨我的服务器应用程序在高负载时崩溃。 它是在Tomcat 5运行的Web应用程序。 我看到线程转储,我发现有一个OutOfMemory错误 1TISIGINFO转储事件“systhrow”(00040000)详情 “java / lang / OutOfMemoryError”“无法创建线程:retVal -1073741830,errno 12”>收到1TIDATETIME日期:2012/07/17 at 20:03:17 1TIFILENAME> Javacore文件名:C:\ ServerApplication \ Tomcat5 \ bin \ javacore.34545719.4646464.4172.0003.txt 堆信息如下: Maximum Java heap size : 1500m Initial Java heap size : 256m 这是初始和最大堆大小的配置(32位java) 我也看到有可用的堆空间 1STHEAPFREE Bytes of Heap Space Free: 2D19F3C0 1STHEAPALLOC Bytes of Heap Space Allocated: 5DC00000 这是750MB的免费空间,对吧? 从线程方法分析我看到Threads的数量是695 ,其中49%是java/lang/Object.wait(Native […]

如何在Intellij想法调试中跳过行?

假设我有这样的java代码(仅作为示例): public void someMethod(){ int a = 3; int b = 2; // <– stay debug here a = b + 2; System.out.prinln(a); } 可以跳过“int a = b + 2”行的执行。 并且不动地去“System.out.prinln(a);”? PS我使用Intellij Idea 12。

IntelliJ线程调试

IntelliJ IDEA是否提供线程调试? 也就是说 – Netbeans允许您调试多个线程,并在这些断点处自动停止(自动)。 然而,我似乎在IntelliJ中获得的只是“线程转储”,这似乎是一个手动分析,当我点击“线程转储”时拍摄的快照。 有什么我想念的吗? 我已经谷歌了,没有找到足够的信息来协助。

如何调试Spring AOP

我有一个Spring AOP的问题,它没有将方面与它应该的所有方法联系起来(在我看来)(有关根问题的更多信息,请参阅此问题: Spring AOP忽略了一些Hessian服务的方法 )。 我如何调试,哪些方法和实例与哪些方面相结合? 有没有类似于弹簧的详细旗帜,它提供了这些信息?

您使用什么技术来调试复杂的guice绑定?

我有一组复杂的绑定,包括许多私有绑定来解决机器人腿问题 。 由于Guice报告可理解的绑定错误的能力有限,我想知道除了阅读之外还有哪些有效的工具或技术,Guice的运行时exception可用于解决运行时绑定错误。 单步执行配置代码没有帮助,因为配置发生在引导时而不是通常发生错误的对象实例化时。 如果Guice图形插件有效,它可能会很有用 – 我的实验结果导致图形不正确。

编写自定义eclipse调试器

编辑:必须有一些方法可以在不编写全新调试器的情况下实现此目的。 我目前正在研究在现有java调试器之上构建的方法。 如果有人对如何获取Java调试器已有的信息有任何想法(关于堆栈帧,变量,原始数据等),那将非常有用。 – 我想要做的是我有这个基于Java的框架/ API,我想编写一个为我的框架定制的eclipse插件调试器。 这是一个简单的例子: 我有两个类,一个叫做范围,一个叫做变量。 范围包含变量图。 代码全部都在java中,但我使用这个范围变量关系几乎就像一种新语言,并且想要一个变量调试选项卡,它给出了当前活动范围的列表,其中包含当前存储的变量。 这是一些代码: import java.util.Hashtable; public class Scope { private Hashtable variableList = new Hashtable(); // constructor public Scope(){ } public void put(String key, Variable v){ variableList.put(key, v); } public Variable get(String key){ return variableList.get(key); } } public class Variable { private String value; private String name; […]

-Xdebug标志开销有多大?

我想知道-Xdebug标志引入的性能开销有多大? 调试生产应用程序非常方便,但我想一直停止运行会很昂贵吗? 另外,是否有一种很好的方法可以使已经运行的应用程序通过Debug端口进行监听,而无需重新启动它? 谢谢。

在Java中有没有办法记录*每个* Thread中断?

我想以某种方式记录每次调用Thread.interrupt() ,记录哪个Thread发出了调用(及其当前堆栈)以及识别有关哪个Thread被中断的信息。 有没有办法做到这一点? 在搜索信息时,我看到有人提到了实施安全管理器的可能性。 这是可以在运行时完成的事情(例如,在Applet或Web Start客户端中),还是需要使用已安装的JVM来执行此操作? 或者有更好的方法吗?

如何在Eclipse Java调试器中将字节数组显示为hex字节或无符号十进制数的数组?

我想在Eclipse(Helios Release,build id:20100617-1415)Java调试器中查看一个字节数组,作为hex字节数组(每个2位数)或无符号十进制数? 那可能吗? 怎么样? 例如,我想显示这个: ……如:0,48,71,22,139,166,…… …或者:0x00,0x30,0x47,0x16,0x8B,0xA6,… (这是一个类似于“ 如何在Eclipse Java调试器中将字节数组显示为char数组? ”的问题。)

Eclipse Java远程调试器在VPN上非常慢

我有时被迫离开办公室工作,这意味着我需要VPN进入我的实验室。 我注意到在这种情况下使用Eclipse进行远程调试非常慢。 缓慢到调试器连接到远程jvm需要5-7分钟的时间点。 连接后,逐步通过断点/线路每次可能需要20-30秒,而且它通常会断开连接,这让我不得不重新开始。 任何人都可以解释为什么会这样,即使没有可用的解决方案? 考虑到远程调试器的行为,我通过VPN的延迟几乎不是人们期望的。 我通过VPN做各种其他的事情,最小的滞后/阻塞。 我真的很难理解为什么远程调试器受到VPN的影响,基本上每个其他网络操作都没问题。 谢谢,