Где я могу найти jdk 7 с (полной) отладочной информацией для отладки HashMap

Мне нужно отлаживать java-код, но java не компилируется с параметром -g (генерировать всю отладочную информацию, включая локальные переменные). Кто-нибудь знает, где я могу найти скомпилированный код, готовый к использованию? Кроме того, я не ищу openJDK с -g. Также я знаю, что мог бы скомпилировать его сам, но стараюсь этого избегать.

Цель прочитать значение переменной 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;
    }

person koralgooll    schedule 22.01.2014    source источник


Ответы (1)


В вашей установке JDK у вас есть файл src.zip со всеми классами Java.

EDIT: проверьте это Где взять полный исходный код rt.jar?

По сути, Oracle перестал предоставлять исходный код для некоторых вещей. Лучше всего, вероятно, использовать openJDK.

person Alfabravo    schedule 22.01.2014
comment
То, что вы пишите, очевидно. Но попробуйте, например, отладить HashMap и остановиться на public V put(K key, V value), затем попробовать прочитать из этой строки int hash = hash(key); значение переменной hash. Тогда я думаю, вы понимаете, что я имею в виду. - person koralgooll; 23.01.2014
comment
@koralgooll Какую IDE вы используете? Свяжите исходники (src.zip) с JDK в настройках IDE. - person Jesper; 23.01.2014
comment
Итак, ваша проблема заключается в отладке, а не в поиске исходного кода. Я не буду предполагать, в чем ваша проблема, пожалуйста, объясните нам. - person Alfabravo; 23.01.2014
comment
@Jasper Я использую Eclipse и NetBeans. В обоих у меня такая же проблема. Я связываю исходники с обоими IDE. В NetBeans это выглядит так, как C:\Program Files\Java\jdk1.7.0_45\src.zip (из диспетчера платформы Java), и в Eclipse это выглядит одинаково (из установленных JDE). @Alfabravo Да, моя проблема в отладке. Ниже привожу код из HashMap. Пожалуйста, дайте мне значение хеш-переменной (int). Это невозможно, потому что исходники java скомпилированы с флагом -g. Я ищу подборку источников без этого флага. Я видел источники, но у меня нет дополнительной информации о. - person koralgooll; 23.01.2014
comment
Вы сейчас смешиваете вещи. В src.zip есть файлы .java, там ничего не компилируется. То, что вы видите как скомпилированное, — это JVM, работающая из вашего JDK. Если у вас есть пример кода, который вы отлаживаете, чтобы воспроизвести здесь, мы могли бы помочь быстрее. - person Alfabravo; 23.01.2014
comment
@Alfabravo Да, наверное, я перепутал. Мне нужна java rt.jar, скомпилированная с флагом -g из исходников java. Тогда у меня будет дополнительная информация при отладке кода. - person koralgooll; 23.01.2014