executableUnit 프로브 단편을 사용하여 프로브의 대상 및 필터 스펙과 일치하며 사용할 수 있는 소스 코드 정보가 있는 메소드에 대해 정확한 데이터 수집을 수행할 수 있습니다.
이 단편 유형에 대한 호출은 대상 메소드의 모든 "실행 가능 단위" 앞에 삽입됩니다. 프로브의 대상 및 필터 스펙과 일치하지만 소스 코드 정보가 없는 메소드의 경우, 단편은 메소드의 시작 부분에 한 번만 삽입됩니다.
executableUnit 단편은 returnedObject, exceptionObject, isFinally 및 thisObject를 제외한 모든 데이터 항목 유형을 사용할 수 있습니다. 가장 중요한 것은 실행하려는 실행 가능 단위 수가 들어 있는 executableUnitNumber 데이터 항목을 사용할 수 있다는 점입니다.
메소드 및 행 테이블에 있는 실행 가능 단위 수는 Probekit에 의해 메소드에 삽입된 실행 가능 단위를 포함하지 않습니다.
실행 가능 단위는 모든 기본 블록의 시작 부분과 소스 행 번호가 이전 바이트 코드와 다른 모든 바이트 코드에서 시작합니다. 기본 블록은 분기되어 나오거나 분기되어 들어갈 수 없는 바이트 코드 명령어의 영역입니다. 기본 블록의 첫 번째 명령어가 실행되면 모든 명령어가 실행되므로 이들 명령어는 단일 그룹으로 간주됩니다.
기본 블록은 branch, call, throw, 및 return 명령어로 종료됩니다.
"divide"와 같은 일부 명령어는 이들 명령어가 예외를 처리할 수 있음에도 불구하고 실행 가능 단위의 종료로 간주되지 않습니다. 이는 실행 가능 단위가 기술적으로 기본 블록과 동일하지 않은 또다른 이유입니다.
Java 메소드가 연관된 소스 정보를 가지고 있지 않은 경우, 전체 메소드는 하나의 실행 가능 단위만 갖는 것으로 간주됩니다.