Ostatnie 4 godziny spędziłem na skonfigurowaniu profilowania Eclipse TPTP na instancji Tomcat, która musi być uruchamiana zdalnie (tj. Nie w Eclipse). Powinno to być możliwe zgodnie z dokumentami kontrolnymi TPTP i Agent .Java JVMTI nie działa obok -Xdebug-Xrunjdwp
Zainstalowałem komponenty TPTP (4.6.0) w moim środowisku roboczym Eclipse (Galileo) , a także Agent Controller zgodnie z instrukcjami na stronie internetowej . Aby włączyć agenta, dodałem następujące opcje do linii poleceń, który rozpoczyna wystąpienie Tomcat:
-agentlib:JPIBootLoader=JPIAgent:server=enabled;HeapProf:allocsites=true
i dodaje następujące katalogi do przodu Ścieżka:
D:\dev\tools\ac\plugins\org.eclipse.tptp.javaprofiler
D:\dev\tools\ac\bin
podczas próby rozpocząć Tomcat I konsekwentnie dostaje następujący błąd wiadomość:
ERROR: JDWP unable to get necessary JVMTI capabilities. ["debugInit.c",L279]
zrobiłem dużo Googling ale nic nie znalazłem releva nt; Próbowałem ponownie zainstalować TPTP i różne wersje programu Agent Controller.
W końcu problem okazało się, że zacząłem Tomcat z opcją „jpda”, co przekłada się catalina.bat
-Xdebug -Xrunjdwp:transport=.....
Zdejmowanie „jpda” argumentem polecenia spowodowane JVMTI zacząć pracujący.
WIĘC, pytanie brzmi: podczas żadnego z moich wyszukiwań nic nie znalazłem pod numerem wskazującym, że agent JVMTI jest niezgodny z debugowaniem. Czy ktoś może wyjaśnić, co się dzieje i dlaczego JVMTI + JDWP nie jest prawidłową konfiguracją ?
, czy możliwe jest jednoczesne korzystanie z zdalnego debugowania z profilowaniem? –
@michael Wierzę, że tak, ale jeśli nie próbujesz naśladować dziwnych warunków, próbując odtworzyć wyciek pamięci lub gigantyczny skok procesora, nie profiluje, a debugowanie brzmi jak zły pomysł? –
Świetna odpowiedź. Wystąpił ten błąd. Musiałem wyłączyć tryb debugowania na moim starszym serwerze aplikacji Sun, zanim mogłem uzyskać dostęp do konfiguracji profilera YourKit. Dziękuję Ci! – jlpp