2012-11-22 3 views

답변

2

클래스 파일이 디버깅 정보로 컴파일되는지 여부에 따라 다릅니다. 일반적으로 컴파일러는 LineNumberTable 속성을 삽입하여 바이트 코드의 각 범위에 해당하는 원래 소스 행 번호를 제공합니다. 그러나 LineNumberTable 속성은 메타 데이터 일 뿐이므로 제작자는 사소한 제약 조건으로 원하는 내용을 넣거나 완전히 생략 할 수 있습니다. (일반적으로 -g: none으로 컴파일하거나 obfuscator를 실행하여 완료)

어쨌든 속성의 형식은 entires (2 바이트) 수와 그 다음에 (start pc, line number) 쌍 (둘 모두 2 바이트)이옵니다. LineNumberTable 속성을 여러 개 가질 수도 있습니다. 물론 라이브러리를 사용하고 있다면, 아마도 이것을 이미 해독 할 것입니다.

관련 문제