Къде мога да намеря 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 класове.

РЕДАКТИРАНЕ: Проверете това Къде да получа пълния изходен код за 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 Platform Manager) и в 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