Debugging 在哪里可以找到jdk 7,其中包含调试HashMap的(完整)调试信息

Debugging 在哪里可以找到jdk 7,其中包含调试HashMap的(完整)调试信息,debugging,java-7,debug-symbols,Debugging,Java 7,Debug Symbols,我必须调试java代码,但java不是用-g选项编译的(生成所有调试信息,包括局部变量)。有人知道,我在哪里可以找到可以使用的代码?另外,我不寻找带有-g的openJDK。我也知道,我可以自己编译,但我尽量避免 目标是在调试中读取hash变量的值,这是不可能的,怎么做 HashMap中的代码: public V put(K key, V value) { if (table == EMPTY_TABLE) { inflateTable(threshold)

我必须调试java代码,但java不是用-g选项编译的(生成所有调试信息,包括局部变量)。有人知道,我在哪里可以找到可以使用的代码?另外,我不寻找带有-g的openJDK。我也知道,我可以自己编译,但我尽量避免

目标是在调试中读取
hash
变量的值,这是不可能的,怎么做

HashMap中的代码:

public V put(K key, V value) {
        if (table == EMPTY_TABLE) {
            inflateTable(threshold);
        }
        if (key == null)
            return putForNullKey(value);
        int hash = hash(key);
        int i = indexFor(hash, table.length);
        for (Entry<K,V> e = table[i]; e != null; e = e.next) {
            Object k;
            if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
                V oldValue = e.value;
                e.value = value;
                e.recordAccess(this);
                return oldValue;
            }
        }
        modCount++;
        addEntry(hash, key, value, i);
        return null;
    }
public V put(K键,V值){
如果(表==空表){
可充气(基本要求);
}
if(key==null)
返回putForNullKey(值);
int hash=散列(键);
int i=indexFor(散列,table.length);
for(条目e=表[i];e!=null;e=e.next){
对象k;
如果(e.hash==hash&((k=e.key)==key | | key.equals(k))){
V oldValue=e.value;
e、 价值=价值;
e、 记录存取(本);
返回旧值;
}
}
modCount++;
加法器(散列、键、值、i);
返回null;
}

在JDK安装中,您有一个包含所有java类的src.zip文件

编辑:检查此项


基本上,Oracle停止为某些东西提供源代码。你最好的答案可能是。

你写的东西是显而易见的。但是试着调试HashMap,例如,在
public V put(K key,V value)
中停止,然后试着从这一行读取
int hash=hash(key)散列变量的值。那么我想你明白我的意思了。@Koralgoll你在用什么IDE?将源代码(
src.zip
)与IDE设置中的JDK相关联。因此,您的问题是调试,而不是查找源代码。我不会假设你的问题是什么,请给我们解释。@Jasper我使用Eclipse和NetBeans。在这两方面我都有同样的问题。我将源代码与两个IDE相关联。在NetBeans中,C:\Program Files\Java\jdk1.7.0\u 45\src.zip(来自Java平台管理器)和Eclipse中,它看起来是一样的(来自已安装的JDE)@是的,我的问题是调试。下面是HashMap中的代码。请给我散列变量(int)的值。这是不可能的,因为java源代码是用-g标志编译的。我正在寻找一些没有这个标志的资料汇编。我已经看到了消息来源,但我没有更多的信息。你现在把事情搞混了。src.zip有.java文件,没有编译任何内容。您所看到的编译是从JDK运行的JVM。如果您有一个要在此处复制的调试代码示例,我们可以帮助您更快地完成调试。