Проверьте, содержит ли байт-код Java символы отладки - PullRequest
22 голосов
/ 30 июня 2010

Я хотел бы знать, как я могу проверить, содержит ли скомпилированный класс Java отладочные символы. Проблема в том, что я компилирую приложение из ant с помощью debug = "on", но конкретная JVM выдает исключение: он говорит, что символы отладки отсутствуют.

Спасибо.

Ответы [ 2 ]

22 голосов
/ 30 июня 2010

Если вы запустите javap -v для файла класса, вы увидите отладочную информацию, которая присутствует в файле.

Стоит скомпилировать простой тестовый класс с различными настройками опции -g и посмотреть результаты с javap.

Если вам необходимо точно знать, как javap представляет информацию, то лучше всего попробовать ее в вашей установке Java. Вывод команды javap может варьироваться в зависимости от версии Java.

12 голосов
/ 19 января 2011

Наиболее важной вещью, которую будет содержать файл класса с отладочной информацией, является LineNumberTable, который отображает инструкции байт-кода на номера строк источника, и LocalVariableTable, который сообщает отладчику, где ваши локальные переменные, включая аргументы метода, находятся внутри виртуальной машины во время выполнения.

...