Опция javap -l не может отображать информацию о номере строки - PullRequest
2 голосов
/ 06 сентября 2011

Команда javap имеет несколько опций, одна из которых -l, которая может печатать номер строки и таблицы локальных переменных. Предположим, что java-программа была успешно скомпилирована, и существует файл «Main.class», поэтому при запуске javap -l Main может получиться что-то вроде:

public static void main(java.lang.String[]);

LineNumberTable:
 line 100: 0
 line 101: 27
 line 275: 54

LocalVariableTable:
 Start Length Slot Name Signature
 0     55     0    args  [Ljava/lang/String;

Однако я использую эту команду javap -l xxx для файлов классов одной Java-программы, но область номера строки и таблицы локальных переменных пуста (чего не должно быть). Команда javap и другие параметры, такие как -s, -verbose, работают нормально, но пуста только область информации о строке, соответствующая параметру -l.

Кто-нибудь сталкивался с таким странным случаем?

1 Ответ

10 голосов
/ 06 сентября 2011

Используйте -g для компиляции вашего кода, иначе номера строк не сохраняются (сродни трассировке стека с отображением «скомпилированного кода» вместо номера строки)

...