Убедитесь, что байт-код Java содержит отладочные символы
Я хотел бы знать, как я могу проверить, содержит ли скомпилированный Java-класс символы отладки. Проблема заключается в том, что я скомпилирую приложение из ant с debug = "on", но конкретная JVM генерирует исключение: он говорит, что символы отладки отсутствуют.
Спасибо.
Ответы
Ответ 1
Если вы запустите javap -v
для файла класса, вы увидите доступную отладочную информацию.
Стоит скомпилировать простой тестовый класс с различными -g
опции -g
и посмотреть результаты с помощью javap
.
Если вам необходимо точно знать, как javap
представляет информацию, лучше всего попробовать ее в вашей установке Java.Вывод команды javap
может отличаться в зависимости от версии Java.
Ответ 2
Самое важное, что будет содержать файл класса с информацией об отладке, - это LineNumberTable, который сопоставляет инструкции байткода номерам исходных строк и LocalVariableTable, которые сообщают отладчику, где локальные переменные, включая аргументы метода, находятся внутри виртуальной машины во время выполнения.