К примеру, наш исходный код выполняет деление на ноль в строке 8.
Если собрать jar-файл из этого кода и запустить - ArithmeticException опять скажет нам про строку 8 в нашем исходнике.
Получается, что в .class-файлах сохраняется даже форматирование исходника (java)? Или тут какой-то другой механизм?
Ответ
При компиляции по умолчанию добавляется номер строки в получаемый byte-код
Можно настроить объем debug-информации, попадаемый в генерируемые файлы, с помощью параметра компилятора -g
-g:none Без отладочной информации.
-g:lines Только номера строк.
-g:lines,source Номера строк и информация об исходном файле.
-g:lines,source,vars Номера строк, информация об исходном файле и данные о локальных переменных.
-g То же самое, что и -g:lines,source,vars
Значение по умолчанию: -g:lines,source
Комментариев нет:
Отправить комментарий