원격으로 실행해야하는 Tomcat 인스턴스에서 Eclipse TPTP 메모리 프로파일 링을 설정하는 데 지난 4 시간을 보냈습니다 (예 : Eclipse가 아님). 이는 TPTP 및 상담원 컨트롤러 설명서에 따라 가능해야합니다.Java JVMTI가 -Xdebug -Xrunjdwp와 함께 작동하지 않습니다.
웹 사이트의 지침에 따라 에이전트 컨트롤러와 함께 Eclipse (Galileo) 워크 벤치에 TPTP 구성 요소 (4.6.0)를 설치했습니다.
-agentlib:JPIBootLoader=JPIAgent:server=enabled;HeapProf:allocsites=true
과 PATH의 전면에 다음 디렉토리를 추가 :
D:\dev\tools\ac\plugins\org.eclipse.tptp.javaprofiler
D:\dev\tools\ac\bin
를 시도 에이전트를 사용하려면, 나는 톰캣 인스턴스를 시작하는 명령 라인에 다음과 같은 옵션을 추가 Tomcat을 시작 나는 일관되게 다음과 같은 오류 메시지를 받았습니다 :
ERROR: JDWP unable to get necessary JVMTI capabilities. ["debugInit.c",L279]
나는 인터넷 검색을 많이 했어요을하지만 아무것도 releva 발견 nt; 나는 TPTP와 다양한 버전의 Agent Controller를 재설치했다.
가 결국 문제는 내가 catalina.bat는 "JPDA 제거"-Xdebug -Xrunjdwp:transport=.....
로 변환하는 "JPDA"옵션으로 톰캣 를 시작되었다는 것을 밝혀졌다 명령 인수는 JVMTI 시작 원인 일.
그럼 질문은 : 에 대한 검색 중에 아무 것도 발견되지 않아서 JVMTI 에이전트가 디버깅과 호환되지 않음을 나타냅니다. 누군가 무슨 일이 일어나고 있는지, 왜 JVMTI + JDWP가 설정이 유효하지 않은지 설명 할 수 있습니까?
그래서 프로파일 링과 함께 원격 디버깅을 동시에 사용할 수 있습니까? –
@michael 나는 그렇게 믿는다. 그러나 메모리 누수 나 거대한 CPU 스파이크를 재현하려는 시도에서 이상한 조건을 모방하려고하지 않는다면 나쁜 생각처럼 디버깅하는 동안 프로파일 링을하지 않겠는가? –
좋은 답변입니다. 이 오류가 발생했습니다. 이전 Sun App Server에서 디버그 모드를 비활성화해야만 YourKit 프로파일 러 구성을 사용할 수있었습니다. 고맙습니다! – jlpp