2013-12-03 3 views
3

Необходимо отладить JAR-файл «ProA», поэтому импортируйте исходный код в проекте, , но в Eclipse есть странная ошибка при попытке установить контрольную точку. Detail, как показано ниже:Как исправить ошибку контрольной точки при отладке в Eclipse?

Unable to install breakpoint due to missing line number attributes. 
Modify compiler options to generate line number attributes. 

меня попробовать несколько методов, чтобы решить, но не удалось.

  1. Под Window> Preferences: Java> Compiler> Генерация файлов классов, все варианты должны быть Правда
  2. В .settings папке вашего проекта, ищет файл с именем org.eclipse.jdt.core.prefs. Проверьте или установите org.eclipse.jdt.core.compiler.debug.lineNumber=generate
  3. Добавьте debug=true флаг в build.xml, так же, как это: <javac srcdir="./src/java" destdir="./bin" debug="true">

Любая помощь будет оценена.

+0

Вы, кажется, делаете правильную конфигурацию. Просто попробуйте очистить сборку вашего проекта. –

+0

Перейдите сюда: http://stackoverflow.com/questions/957822/eclipse-unable-to-install-breakpoint-due-to-missing-line-number-attributes?rq=1 –

+0

Я очистил проект и tomcat , но проблема все еще существует. –

ответ

1

У меня была такая же проблема, но чтение вашего сообщения помогло мне решить мою проблему. Я изменил org.eclipse.jdt.core.prefs следующим образом:

ДО:

eclipse.preferences.version=1 
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 
org.eclipse.jdt.core.compiler.compliance=1.7 
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 
org.eclipse.jdt.core.compiler.source=1.7 

ПОСЛЕ:

eclipse.preferences.version=1 
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 
org.eclipse.jdt.core.compiler.compliance=1.7 
org.eclipse.jdt.core.compiler.debug.lineNumber=generate 
org.eclipse.jdt.core.compiler.debug.localVariable=generate 
org.eclipse.jdt.core.compiler.debug.sourceFile=generate 
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 
org.eclipse.jdt.core.compiler.source=1.7 

Другой способ изменить эти параметры в рамках проекта> Свойства> Java Compiler. Таким образом, нет необходимости вручную изменять файл org.eclipse.jdt.core.prefs. Там вам нужно убедиться, что отмечены опции Classfile Generation.

0

В JAR атрибуты номера строки отсутствуют в скомпилированном байт-коде. С добавленным исходным кодом Eclipse знает номера строк, , но не Java VM, который выполняет байт-код и не видит исходный код.

Было бы бесполезно, если бы Eclipse заявлял, что виртуальная машина Java останавливается на определенной строке, потому что виртуальная машина Java не знает, какая команда находится в этой строке, и поэтому, когда нужно остановиться.

Единственное решением является воссоздать JAR или по крайней мере байткод (.class файлов) с информацией линии класса (ов), где вы хотите установить точку останова.

Смежные вопросы