methodLineTables 문자열 형식

methodLineTables 데이터 문자열은 클래스의 모든 실행 가능 단위마다 하나의 항목을 사용하여 테이블을 인코드합니다.

methodLineTables 테이블 각 항목의 값은 classSourceFile 데이터 문자열에서 참조하는 소스 파일의 라인 번호에 해당하며 실행 가능 단위의 소스 라인 번호입니다.

다음은 methodLineTables 문자열의 예입니다.
#51+1201#75+11,41
다음은 문자열을 해석하는 방법입니다.
  • 번호 부호("#") 바로 다음의 숫자는 클래스용 소스 코드의 완료 라인 번호를 나타냅니다. 예를 들어, 클래스의 첫 번째 메소드에서 첫 번째 실행 가능 단위는 51번 라인에 있습니다.
  • 더하기 부호("+") 다음에 오는 각각의 숫자는 다음 실행 가능 단위 라인 번호를 생성하도록 이전 라인 번호에 추가할 라인 수를 나타냅니다. 예에서 더하기 부호 다음의 숫자(+1201)는 다음과 같이 다섯 번째 실행 가능 단위에서 두 번째 라인 번호를 계산하는 데 사용됩니다.
    1. 51 + 1 = 두 번째 실행 가능 단위 라인 번호: 52
    2. 52 + 2 = 세 번째 실행 가능 단위 라인 번호: 54
    3. 54 + 0 = 네 번째 실행 가능 단위 라인 번호: 54(하나의 소스 라인에 두 개의 실행 가능 단위)
    4. 54 + 1 = 다섯 번째 실행 가능 단위 라인 번호: 55
  • 라인 번호 증분이 -이거나 9보다 큰 경우 실행 가능 단위에 완료 라인 번호가 지정됩니다. 예에서 여섯 번째 실행 가능 단위는 75번 라인에 있으며 이전 라인 번호 55보다 20이 더 큽니다. 이 경우 여섯 번째 실행 가능 단위에 완료 라인 번호가 지정되며 관련 라인 번호 계산이 다음과 같이 다시 시작됩니다(#75+11).
    1. 75 = 여섯 번째 실행 가능 단위 라인 번호
    2. 75 + 1 = 일곱 번째 실행 가능 단위 라인 번호: 76
    3. 76 + 1 = 여덟 번째 실행 가능 단위 라인 번호: 77
  • 쉼표(",")는 한 메소드의 끝과 다음 메소드의 시작을 나타냅니다. 쉼표 다음의 숫자 및 기호는 이전과 같이 해석됩니다. 예에서 두 번째 메소드의 첫 번째 실행 가능 단위의 라인 번호는 이전 메소드에 대해 계산한 마지막 라인 번호보다 단지 4가 더 크므로 관련 라인 번호 계산은 다음과 같이 쉼표 이후(,41) 계속됩니다.
    1. 77 + 4 = 두 번째 메소드의 첫 번째 실행 가능 단위 라인 번호: 81
    2. 88 + 1 = 두 번째 메소드의 두 번째 실행 가능 단위 라인 번호: 89
주: 모든 실행 가능 단위에 연관된 소스 정보가 있지는 않습니다. 일부는 컴파일러에서 작성하여 Java 언어의 의미론을 구현합니다(예: 예외 핸들링, 초기화 또는 동기화). 이렇게 생성된 실행 가능 단위는 methodLineTables 문자열에 완료 라인 번호 0을 갖게 됩니다. 완료 라인 번호 0은 사용할 수 있는 라인 번호 정보가 없음을 표시합니다. 전체 메소드에 소스 정보가 없는 경우 라인 번호 0에 해당하는 하나의 실행 가능 단위가 있는 것으로 나타납니다.
다음은 methodLineTables 문자열 및 해당 의미에 대한 추가 예입니다.
methodLineTables 문자열 의미
+5 첫 번째 메소드의 첫 번째 실행 가능 단위 라인 번호가 10보다 작으면 전체 문자열은 더하기 부호로 시작하며 0번 라인부터 일련의 증분을 시작합니다. 이 예에서 첫 번째 메소드의 첫 번째 실행 가능 단위는 5번 라인에서 시작합니다.
+0 첫 번째 메소드에 소스 정보가 없는 경우 문자열은 +0으로 시작합니다. 이러한 메소드에 적용되는 모든 executableUnit 프로브 단편은 메소드 시작 시 한 번만 삽입됩니다.
...#437,#457+123... 이전 메소드의 마지막 실행 가능 단위 다음에 메소드의 첫 번째 실행 가능 단위가 10개 이상의 라인에서 시작하면 패턴은 새 메소드의 첫 번째 실행 가능 단위에 대한 쉼표, 숫자 부호 및 라인 번호 문자열이 됩니다. 이 부분적인 예에서 새 메소드의 첫 번째 실행 가능 단위는 이전 메소드의 마지막 실행 가능 단위 다음으로 20개의 라인을 시작합니다.
...#437,+2... 메소드에 있는 마지막 실행 가능 단위에 "#" 표기가 필요할 수 있으며 다음 메소드의 첫 번째 실행 가능 단위가 가까운 거리에 있을 수 있습니다. 이 부분적인 예에서 한 메소드의 마지막 실행 가능 단위는 437번 라인에서 시작하고 다음 메소드의 첫 번째 실행 가능 단위는 439번 라인에서 시작합니다.

상위 주제: Probekit 요소 참조

관련 참조
데이터 프로브 객체

이용약관 | 피드백
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.