Точка останова в библиотеках времени выполнения Java (rt.jar) - PullRequest
1 голос
/ 09 февраля 2012

Разве мы не можем поставить точку останова в классах в rt.jar?

Я что-то отлаживаю и мне нужно поставить точку останова в java.sql.DriverManager, но как только я поставлю точку останова в каком-то месте, eclipse предложит мне сообщение

Unable to install breakpoint in java.sql.DriverManager due to missing line number attributes. Modify compiler options to generate line number attributes

Значит ли это, что классы времени выполнения Java не были скомпилированы для отладки? Если да, то зачем это делать? Пожалуйста, помогите!

Edit1: я делаю удаленную отладку, собственно веб-приложение запущено в tomcat на машине linux, я на машине с windows. Какой rt.jar здесь виновник, тот, что на моей машине, или тот, что на удаленной машине? И возможно ли, что rt.jar не скомпилирован с номерами строк и другой полезной информацией?

Edit2: подробные ответы на этот вопрос Локально объявленные переменные не могут быть проверены Кто-нибудь знает, почему это скомпилировано без отладочных символов? Как это влияет на производительность, чтобы сохранить некоторые метаданные или это что-то еще?

Ответы [ 2 ]

3 голосов
/ 09 февраля 2012

Если класс не скомпилирован с помощью переключателя отладки (-g), вы не можете устанавливать точки останова для конкретной строки.

Однако вы все равно можете устанавливать точки останова для методов (в eclipse: set breakpointв первой строке, определяющей метод), даже если классы не откомпилированы для отладки.

Скорее всего, у вас не будет доступа к локальным переменным, и вы не увидите, в какой строке вы проходите код,Это делает отладку немного сложнее, но вы все равно можете видеть, что происходит (например, проверить значения аргументов метода), особенно если вы знаете исходный код.

Но мне интересно, что ваш RT.jar не скомпилирован с отладочной информацией.

0 голосов
/ 09 февраля 2012

Это настройка затмения.Как ясно и по сообщению об ошибке 2-й вариант отмечен в Classfiel Generation

Перейти к предпочтению 2nd Option checked in Classfiel Generation

...