我在哪里可以找到带有(完整)调试信息的jdk 7来调试HashMap

时间:2014-01-22 20:03:51

标签: 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);
        }
        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;
    }

1 个答案:

答案 0 :(得分:2)

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

编辑:点击Where to get full source code for rt.jar?

基本上,Oracle停止为某些事情提供源代码。你最好的镜头可能是openJDK