Я провел последние 4 часа, пытаясь настроить Eclipse, TPTP модуля памяти профилирование на экземпляре Tomcat, который должен быть запущен удаленно (т.е. не в Eclipse). Это должно быть возможно в соответствии с документами TPTP и Agent .Java JVMTI не работает вместе с -Xdebug -Xrunjdwp
Я установил компоненты TPTP (4.6.0) в рабочий стол Eclipse (Galileo) вместе с контроллером агента в соответствии с инструкциями на веб-сайте. Чтобы включить агент, я добавил следующие параметры в командной строке, запускающей экземпляр Tomcat:
-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 нт; Я попробовал переустановку TPTP и различных версий Agent Controller.
В итоге проблема оказалась в том, что я начинал Tomcat с опцией «JPDA», который транслируется в catalina.bat
-Xdebug -Xrunjdwp:transport=.....
Удаление «JPDA» аргумент команды вызвал JVMTI начать за работой.
Итак, вопрос в том, что ни один из моих поисков не обнаружил, что указывает, что агент JVMTI несовместим с отладкой. Может ли кто-то объясняет, что происходит, и почему JVMTI + JDWP недействителен ?
Итак, можно ли одновременно использовать удаленную отладку с профилированием? –
@michael Я так считаю, но если вы не пытаетесь воспроизвести какие-то странные условия в попытке воспроизвести утечку памяти или гигантский всплеск процессора, не профилирует, когда отлаживается звук, как плохая идея? –
Отличный ответ. Получалась эта ошибка. Мне пришлось отключить режим отладки на моем старом сервере приложений Sun, прежде чем я смогу настроить конфигурацию профилировщика YourKit для работы с ним. Спасибо! – jlpp