Я получаю эту странную ошибку в Eclipse при попытке установить точку останова.
Unable to insert breakpoint Absent Line Number Information
Я установил флажок в параметрах компилятора, но не повезло.
eclipse
debugging
breakpoints
chandrajeet
источник
источник
Ответы:
У меня было то же сообщение об ошибке в Eclipse 3.4.1, SUN JVM1.6.0_07, подключенный к Tomcat 6.0 (работает в режиме отладки на другом компьютере, Sun JVM1.6.0_16, отладочное соединение работало правильно).
Окно -> Настройки -> Java -> Компилятор -> Генерация файла класса: проверено «добавить атрибуты номера строки в созданный файл класса» . Я сделал чистую, перекомпилировать. Я снял галочку, перекомпилировал, проверил, перекомпилировал. Я убедился, что проект использует глобальные настройки. Все то же сообщение.
Я перешел на сборку муравья, используя
Тем не менее, то же сообщение.
Я не выяснил, что вызвало это сообщение и почему оно не исчезло. Хотя казалось, что это как-то связано с запущенным сеансом отладки Tomcat: при отключении перекомпиляция решает проблему. Но при подключении отладчика к Tomcat или при установке новых точек останова во время подключенного сеанса отладки он появился снова.
Однако оказалось, что сообщение было неверным : я действительно смог отладить и установить точки останова, как до, так и во время отладки ( javap -l также показывал номера строк). Так что просто игнорируй это :)
источник
debug="true"
кjavac
задачеant
сборки скрипта сработало.источник
Это исправило мою проблему:
источник
Installed JREs
умолчанию используетсяJDK
вместоJRE
Для проблем, связанных с Spring, учтите, что в некоторых случаях он генерирует классы «без номеров строк»; например
@Service
аннотированный класс без интерфейса, добавьте интерфейс, и вы сможете отлаживать. Смотрите здесь для полного примера.Служба выше будет иметь интерфейс, сгенерированный пружиной, вызывающей «пропущенные номера строк». Добавление реального интерфейса решает проблему генерации:
источник
У меня есть ответ на эту проблему со стороны BlackBerry SDK: по какой-то причине, независимо от того, сколько раз я менял параметры в компиляторе, фактический базовый файл настроек не менялся.
Найдите в папке .settings вашего проекта файл с именем org.eclipse.jdt.core.prefs .
Там вы можете изменить настройки вручную:
редактировать: в дополнение к этому, я заметил, что иногда я могу игнорировать предупреждение, которое дает Eclipse, и оно все равно остановится в нужном месте ... curioser и curioser ... Я положил это в корзину вещей, с которыми мы учимся иметь дело при работе в качестве разработчика
источник
Это сработало для меня:
Window --> Preferences --> Java --> Compiler --> Classfile Generation
все варианты должны бытьTrue
.debug="true"
в build.xml<javac>
задаче .Debug
режимеисточник
Не знаю, если это все еще актуально, возможно, другой моряк сочтет это полезным.
Сообщение появляется, когда файл класса скомпилирован, флаги отладки отключены.
В затмении вы можете включить его с помощью вышеупомянутых опций,
Окно -> Настройки -> Java -> Компилятор -> Генерация файла класса: «добавить атрибуты номера строки в сгенерированный файл класса»
Но если у вас есть JAR-файл, вы получите скомпилированный вывод. Нет простого способа решить эту проблему.
Если у вас есть доступ к источнику и вы используете ant для получения файла jar, вы можете изменить задачу ant следующим образом.
Удачной отладки ..
ссылка: http://doc.sumy.ua/prog/Java/javanut/ch16_04.htm
источник
Я попробовал почти все решения здесь и не повезло. Вы пытались нажать «Не говори мне больше»? После этого я перезапустил свою программу, и все было хорошо. Затмение достигло моей точки останова, как будто ничего не случилось.
Основной причиной для меня было то, что Eclipse пытался настроить отладку для автоматически сгенерированных прокси-объектов Spring CGLIB. Если вам не нужно что-то отлаживать на этом уровне, вы должны игнорировать проблему.
источник
Было бы полезно, если бы вы указали версию затмения, которую вы используете, и технологию (например, Java JDT или AJDT для Aspect Java или C ++ CDT).
На стороне Java, я полагаю, что ваш «галочка в опциях компилятора» относится к этому
Под "
Window --> Preferences --> Java --> Compiler --> Classfile Generation
" всеClass file
параметры генерации 'установлены на True:Ваш проект проверен только на глобальном уровне (настройки Windows) или на уровне проекта?
И уверены ли вы, что класс открыт (на котором вы пытаетесь установить точку останова):
.java
, а не.class
?Попытайтесь очистить все и восстановить все, проверьте на возможные конфликты фляги .
источник
У меня была эта проблема при попытке запустить Tomcat в режиме отладки из Eclipse. У меня был файл сборки ANT, заботящийся о компиляции и развертывании. После установки флага отладки в true (как упоминалось в других ответах) и повторного развертывания приложения оно работало нормально:
ПРИМЕЧАНИЕ: если вы только что добавили флаг отладки и перекомпилировали, вам все равно нужно повторно развернуть ваше приложение на сервере, поскольку именно здесь Eclipse отлаживает файлы классов. Совершенно очевидно, но легко потратить час или около того, почесывая голову и удивляясь, почему это не работает (поверьте мне).
источник
попробуйте изменить используемый
jre
вами. Вместо этого установитеjre
в папкеJDK
.источник
Поскольку у меня установлено 6 разных версий Java, мне пришлось изменить соответствие JDK по умолчанию, чтобы оно соответствовало той версии Java, которую я хотел использовать. В Eclipse по умолчанию уровень соответствия компилятора был установлен на Java 1.7, когда все было собрано / скомпилировано с использованием Java 1.6.
Так что все, что я сделал, было
Теперь Eclipse больше не жалуется на «Невозможно вставить информацию об отсутствующей строке номера точки останова», а точки отладки фактически работают !!!
источник
Если больше ничего не работает, откройте перспективу отладки, очистите все существующие точки останова и затем установите их снова.
источник
Это подробно объясняется здесь:
https://github.com/spring-projects/spring-ide/issues/78
Просто для дальнейшего использования, это важная часть ответа (не обращайте внимания на тот факт, что относится к приложению Spring Boot, поведение такое же для многих других случаев):
источник
Моя ситуация была похожа:
spyTask = spy(new Task())
Task.java
)Эта точка останова генерирует соответствующую ошибку каждый раз, когда я запускаю
Debug As... > JUnit Test
Чтобы решить проблему, я переместил точку останова «вверх» в реальный тест (внутри TaskTest.java). После того, как выполнение остановилось, я добавил точку останова туда, где она была у меня изначально (внутри Task.java).
Я все еще получил ту же ошибку, но после нажатия «ОК», точка останова работала очень хорошо.
Надеюсь, это поможет кому-то,
-gmale
источник
У меня была такая же проблема, когда я делал на сервере Jetty и компилировал новый файл .war от ANT. Вы должны сделать ту же версию компилятора jdk / jre и путь сборки (например, jdk 1.6v33, jdk 1.7, ....) после того, как вы установите Java Compiler, как было написано ранее.
Я сделал все и до сих пор не работает. Решением было удалить скомпилированные файлы .class и цель сгенерированного файла war, и теперь он работает :)
источник
Получил это сообщение с Spring AOP (похоже, из библиотеки CGLIB). Нажав Игнорировать, кажется, работает нормально, я все еще могу отладить.
источник
Я нашел еще одну причину для этого сообщения. Я программировал Scala. Решение было:
Теперь отладка должна работать. Обратите внимание, что я установил плагин Scala IDE, эта опция может быть недоступна, если у вас ее нет.
источник
Все вышеперечисленное не работает для меня. Ниже решения наконец-то сработали. Конфигурации отладки -> Classpath -> Записи пользователя -> (Добавьте папку src проекта, который вы хотите отладить.)
источник
У меня была такая же проблема при отладке WAR (созданного из нескольких артефактов проекта Eclipse), развернутого в Tomcat.
Я строю все, используя скрипт сборки ANT. Если это то, что вы делаете, убедитесь, что флаг debug = true установлен на каждой вашей задаче javac ant. Это была моя единственная проблема - надеюсь, это поможет вашей проблеме!
источник
У меня была такая же ошибка с JBoss 7.1 .. И я сделал то же самое, что и Zefiro. Просто проигнорировал ошибку, и я смог нормально установить точки останова. В моем случае я строил мыслительный муравей, и это моя задача javac:
источник
У меня возникла та же проблема, я потратил много времени на поиск решения, но эти решения бесполезны, поэтому я сам изучаю все случаи, и в конце концов я обнаружил, что проблема заключается в конфликте между версиями JDK. Ниже приведены шаги для решения проблемы: 1. Удалите все версии JDK и JRE, оставьте только одну версию. 2. Установить систему JAVA_HOME и компилятор java в Eclipse одинаково. В некоторых случаях приведенная выше ошибка не исчезнет, но мы сможем запустить модель отладки.
источник
Как только я столкнулся с той же ошибкой при использовании junit и Mockito, я забыл добавить
@PrepareForTest
статический класс.Добавьте ниже код исправил мою проблему.
Не уверен, что это был тот же случай.
источник
Моя проблема заключалась в том, что у меня было 2 JAR, и я пытался переопределить один из них другим в зависимости от их порядка на
Java Build Path => Order & Export
вкладке в Eclipse, потому что один был для отладки, а другой - нет (отладочный JAR был первым в порядке). Когда я делал это таким образом, мне приходилось вручную подключать источник.Я попытался удалить JAR без отладки и поместить JAR отладки в мой каталог \ WEB-INF \ lib \, очистка, сборка и т. Д., И это сработало. На этот раз (удалив подключенный источник), он автоматически позволил бы мне перемещаться по коду отладки без необходимости подключения какого-либо источника вручную. Точки останова и отладки тоже работали.
Если у кого-то все еще есть проблемы, я также попробовал все эти конкретные решения, упомянутые в других ответах:
Add line number attributes...
org.eclipse.jdt.core.prefs
как указано в другом ответе: https://stackoverflow.com/a/31588700/1599699Я также сделал обычное завершение работы сервера (и убедившись, что java.exe действительно закрыт ...), удалив каталоги \ build \ в обоих проектах, перезапустив Eclipse с параметром -clean, воссоздав JAR отладки, обновив, очистка и сборка проекта с JAR-файлом отладки, запуск сервера в режиме отладки, публикация / очистка и определение точек останова.
источник
Я сделал все, что перечислено выше, во время компиляции / сборки jar-файлов - все еще была та же проблема.
В конце концов, изменения jvmarg, перечисленные ниже, при запуске сервера, наконец-то, сработали для меня:
1) Удалено / прокомментировано несколько аргументов jvm, относящихся к javaagent и bootclasspath.
2) Включил / не прокомментировал следующую строку:
Затем, когда я запускаю сервер, я могу достичь своих точек останова. Я подозреваю, что javaagent каким-то образом мешал Eclipse обнаруживать номера строк.
источник
Проверьте / сделайте следующее:
1) В разделе «Окно -> Настройки -> Java -> Компилятор -> Генерация файлов классов» все параметры должны иметь значение True:
2) В папке .settings вашего проекта найдите файл с именем org.eclipse.jdt.core.prefs. Проверьте или установите org.eclipse.jdt.core.compiler.debug.lineNumber = generate
3) Если окно ошибки все еще появляется, установите флажок, чтобы не отображать сообщение об ошибке.
4) Очистить и построить проект. Начните отладку.
Обычно окно ошибки больше не отображается, и информация об отладке отображается правильно.
источник
Я столкнулся с этой проблемой также. Я использую скрипт сборки муравья. Я работаю над устаревшим приложением, поэтому использую jdk версии 1.4.2. Раньше это работало, поэтому я начал осматриваться. Я заметил, что в конфигурации Debug на вкладке JRE версия Java была установлена на 1.7. Как только я изменил его обратно на 1.4, он работал.
Надеюсь, это поможет.
источник
Я пытался отладить менеджер журналов и мне нужно было изменить jre на jdk, а затем выбрать этот jdk на вкладке «main», «Java Runtime Environment» | «runtime JRE» отладочной конфигурации тогда все было хорошо.
источник
Я увидел эту проблему, когда аннотировал класс с помощью @ManagedBean (javax.annotation.ManagedBean). При запуске недавно выполненного приложения на JBoss EAP 6.2.0 появилось предупреждение. Игнорирование и запуск в любом случае не помогли - точка останова не была достигнута.
Я вызывал этот бин, используя EL на странице JSF. Теперь ... возможно, что @ManagedBean не годится для этого (я новичок в CDI). Когда я изменил свою аннотацию на @Model, мой компонент был выполнен, но предупреждение о точке останова также исчезло, и я достиг точки останова, как и ожидалось.
Подводя итог, можно сказать, что аннотация @ManagedBean испортила номера строк независимо от того, была ли эта аннотация неправильной.
источник
Убедитесь, что проект, в котором основным классом среды выполнения является тот же проект, в котором находится класс, в котором вы имеете точки останова . Если нет, убедитесь, что оба проекта находятся в пути к классам конфигурации запуска и отображаются перед любыми jar-файлами и папками классов.
источник