2017-10-18 6 views
-3

JPDA에서 JDI API를 사용하고있었습니다. 그러나 그 어떤 제한 때문에 나는 어느 시점에 갇혀있다. Java 프로그램 용 사용자 정의 디버거를 작성할 수 있도록 JDI의 대안은 무엇입니까? 선호하는 Java 대안.Java Debug Interface의 대안

+1

왜 대안이 필요합니까? '어떤 한계로 인하여'의미하는 것은 무엇입니까? 어떤 대안이 있다고 생각하게합니까? 왜 Sun과 Oracle은 같은 작업을 두 번합니까? – EJP

+0

@EJP 오라클은 디버거 개발자가 JPDA의 JDWP 레이어와 직접 상호 작용하는 코드를 작성할 수 있다고 말합니다. 따라서 더 많은 기능을 제공 할 수있는 몇 가지 대안을 가질 수 있습니다. – rainyday

+0

그리고 @EJP JDI가 지원하지 않는 로컬 변수의 수정 및 액세스를 감시하고 싶습니다. – rainyday

답변

1

JDI는 JVMTI 네이티브 API 위에 구현됩니다. 따라서 자신의 디버그 에이전트 코드를 구현하려는 경우 JDI 계층을 피할 수 있습니다.

그러나 나는 그것이 당신을 더 이상 얻을 것이라고 의심합니다. 나는 JDI의 한계가 실제로 JVMTI 네이티브 API 자체의 한계라고 생각한다. (그러나 JVMTI specification에서 원하는 기능을 지원하는지 확인할 수 있습니다.)

JVMTI에 대한 대안이 있습니까?

AFAIK, no. 적어도 최근 Oracle Hotspot 릴리스에는 해당되지 않습니다!

(JDPA 사양에서는 모든 Java 구현이 사양을 구현하지는 않으므로 다른 공급 업체의 Java 구현이 다르게 디버깅을 수행 할 가능성이 있음을 인정하지만 핵심 JRE와 JVMTI 간의 통합은 많은 소프트웨어를 나타냅니다 개발 노력이 필요하므로 오라클 (또는 그 밖의 사람들)이 핫스팟을위한 JVMTI 대안을 구현하지는 않을 것입니다.