데이터 프로브 오브젝트에는 단편의 코드 오브젝트에 있는 소스 코드에 의해 참조되는 데이터 항목의 이름과 유형이 들어 있습니다.
데이터 오브젝트는 선택적입니다. 프로브 단편은 두 개 이상의 데이터 오브젝트를 포함할 수 있지만, 한 단편 내에서 두 개의 데이터 오브젝트가 같은 유형이나 이름을 가질 수 없습니다.
특성 | 설명 |
---|---|
name | 필수사항. 유효한 Java 변수 이름을 지정해야 합니다. |
type | 필수사항. 다음 표에는 사용 가능한 유형이 나열되어 있습니다. |
유형 | 데이터 유형 | 설명 |
---|---|---|
className | String | 내부 형식의 패키지 이름을 포함하는 프로브된 메소드의 클래스 이름. 예제: org/eclipse/hyades/SomeClass |
methodName | String | 내부 형식의 프로브된 메소드의 메소드 이름. staticInitializer 단편에는 유효하지 않습니다. 생성자는 메소드 이름 <init>을 가지며 정적 클래스 초기화 프로그램은 메소드 이름으로 <clinit>를 갖습니다. |
methodSig | String | 내부 형식의 메소드 인수 및 리턴 유형 서명. staticInitializer 단편에는 유효하지 않습니다. 예제: (Ljava/lang/String;)I |
thisObject | Object | 프로브된 메소드로 전달된 this 오브젝트(인스턴스 메소드에 대한). staticInitializer 단편에는 유효하지 않습니다. thisObject는 정적 메소드, 생성자에 적용되는 entry 단편, 생성자가 예외를 처리할 때 생성자에 적용되는 exit 단편에 대해 null이 됩니다. |
args | Object[] | 프로브된 메소드에 인수를 나타내는 Object 참조의 배열. 이 배열에는 메소드에 대한 각 인수에 대해 하나의 요소가 있습니다(this 인수는 계수하지 않음). 기본 유형인 인수는 적절한 참조 유형의 임시 오브젝트로 바인드됩니다(예: int의 경우 Integer). 메소드가 인수를 갖지 않는 경우, 이는 크기가 0인 Object[] 배열이 됩니다. 비정적 내부 클래스에 대한 생성자가 "내부" 레벨당 하나의 숨겨진 인수를 가지므로 인수 배열은 소스 코드에 나타나는 것보다 더 많은 요소를 포함한다는 것을 참고하십시오. staticInitializer 단편에는 유효하지 않습니다. |
returnedObject | Object | 리턴되고 있는 오브젝트에 대한 참조. 이 유형은 exit 단편에만 사용 가능합니다. 프로브된 메소드의 리턴 유형이 기본 유형일 경우, 리턴된 값은 적절한 참조 유형의 임시 오브젝트로 바인드됩니다. 메소드가 void(값을 리턴하지 않음)이거나 예외에 의해 종료되는 경우, returnedObject는 null이 됩니다. afterCall 단편에서만 유효합니다. |
exceptionObject | Throwable | 처리되고 있는 예외 오브젝트에 대한 참조. 이 유형은 catch 및 exit 단편에만 사용 가능합니다. 메소드가 정상으로 종료되는 경우 exceptionObject는 null이 됩니다. |
isFinally | boolean | 단편이 finally 절(true) 또는 catch 절(false)에서 호출되었는지를 표시하는 플래그. catch 단편에서만 유효합니다. |
staticField | (변경됨) | 정적 필드에 의해 참조되는 오브젝트. 이 오브젝트의 유형은 staticField 오브젝트에 선언된 것과 같은 유형입니다. 프로브가 staticField 오브젝트도 가지고 있는 경우에만 유효합니다. 호출 사이트 프로브에는 유효하지 않습니다. |
classSourceFile | String | 클래스 파일의 디버그 속성에서 사용 가능한 소스 파일 이름 정보. 소스 정보가 없으면 classSourceFile은 null이 됩니다. Java의 경우, 이 값은 일반적으로 경로 정보가 없는 파일 이름뿐입니다. 호출 사이트 프로브에는 유효하지 않습니다. |
methodNames | String | 메소드 이름 및 서명의 인코딩된 목록. 이 목록에서 메소드의 순서는 methodLineTables에 있는 메소드의 순서와 동일하며, methodNumber 데이터 항목에 의해 반영되는 순서와 동일합니다. 목록은 Probekit에 의해 클래스에 삽입된 메소드의 이름은 포함하지 않습니다. methodNames 문자열은 하나 이상의 메소드 이름과 서명으로 구성되며 플러스("+") 기호로 구분되어 있습니다. 메소드 서명은 Java 내부 형식으로 되어 있습니다. 예를 들어, 두 개의 메소드(기본 생성자, String을 가져오고 int를 리턴하는 run 메소드가 있는 클래스는 다음 methodNames 문자열 <init>()V+run(Ljava/lang/String;)I을 갖습니다. 호출 사이트 프로브에는 유효하지 않습니다. |
methodLineTables | String | 클래스에 있는 모든 실행 가능 단위 코드와 일치하는 인코딩된 행 번호 목록. 이 목록은 Probekit에 의해 클래스에 삽입된 실행 가능 단위는 포함하지 않습니다. 인코딩의 설명에 대해서는 methodLineTables 문자열 형식을 참조하십시오. 호출 사이트 프로브에는 유효하지 않습니다. |
methodNumber | Integer | 프로브 단편이 삽입된 메소드에 대한 methodNames 테이블에 있는 색인 번호. 호출 사이트 프로브 또는 staticInitializer 단편에는 유효하지 않습니다. |
executableUnitNumber | Integer | 프로브 단편이 삽입된 실행 가능 단위의 수. 이 데이터 유형은 executableUnit 및 catch 프로브 단편에만 유효합니다. 메소드에 소스 행 정보가 없는 경우, 0으로 숫자 표시된 단일 실행 가능 단위를 갖는 것으로 나타납니다. |
<data type="className" name="__class" />
포함된 위치
단편 프로브 오브젝트
상위 주제: Probekit 참조