LINUX.ORG.RU

Java blackbox debug

 , ,


0

1

Есть у меня Java-приложение, bloody-enterprise.
И ведёт оно себя неправильно - виснет один за кусков.
Работает это счастье в модифицированном Tomcat.
Конфиги не подправить - генерятся при запуске.
JMX нет, jstack валится с ошибкой доступа к памяти.

Посоветуйте книжку или развёрнутые статьи по методам отладки и выуживания информации о приложении без сорцов, коли таковые(метОды) имеются.

Спасибо за внимание.

★★★★

jstack валится с ошибкой доступа к памяти.

гм, странное приложение, там защиты от дебага нет, или кастомных сишных либ?

Вообще kill -3 выдаст стектрейтс в stderr (или stdout, не помню)

зы. сорцы можно попробовать декомпилировать, я так различные штукенции разгребал, в idea есть декомпилятор и отдельно jd-gui

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

гм, странное приложение, там защиты от дебага нет, или кастомных сишных либ?

Это ихний саппорт посоветовал jstack с конкретными аргументами xD

Вообще kill -3 выдаст стектрейтс в stderr (или stdout, не помню)

Попробуем!

сорцы можно попробовать декомпилировать

Сомневаюсь что надо так глубоко.
Там же куча возможностей подключится к JVM и получить данные.
Должно что-то быть.

Yustas ★★★★
() автор топика
Ответ на: комментарий от Yustas

Ну самый просто - запустить сервер в режиме отладки (это через параметры jre) и подцепится отладчиком.

Но обычно kill -3 и медитации хватает.

Deleted
()
Ответ на: комментарий от Yustas

Это ихний саппорт посоветовал jstack с конкретными аргументами xD

Саппорт должно сказать, как получить логи, которые ты им отдашь, чтоб они сказали чего и как. Пытаться без сорцов получить «какую то инфу» из jvm не самое умное убийство своего времени. Гноби саппорт.

anonymous
()
Ответ на: комментарий от anonymous

Гноби саппорт.

Оно может продолжаться довольно долго - неделю, две, три.
Попытки кого-то пнуть через менджмент - так же примерно, это не business critical система.
Почему бы и не потыкать JVM на предмет дебага, хуже - не будет. Лучше - может быть.

Yustas ★★★★
() автор топика
Ответ на: комментарий от Yustas

Да ладно. Я уже так делал: 7zip, декомпилятор, новый class, 7zip. Ты же сам сказал, что это кровавый интерпрайз.

anonymous
()
Ответ на: комментарий от Yustas

это и есть stdout/stderr просто направленный в файл

Deleted
()

Нуууу... не знаю, что значит «jmx нет», но если ты можешь выполнять jstack, но подозреваю, что можешь и менять параметры запуска. Запиши флайт рекордером минут 10 и посмотри. Напихай флагов типа «хип дамп по ООМу», потому что вдруг. Обычно я так делаю.

ключевые слова: flight recorder, HeapDumpOnOutOfMemoryError etc.

cdshines ★★★★★
()
Ответ на: комментарий от cdshines

Даже 5 минут флайт-рекордера тебе дадут столько данных, что можно неделю медитировать. В первую очередь посмотри на статистику тредов, статистику аллокаций и статистику по исключениям. Или хотя бы графики гц и т.д.

cdshines ★★★★★
()
Ответ на: комментарий от cdshines

Нуууу... не знаю, что значит «jmx нет», но если ты можешь выполнять jstack, но подозреваю, что можешь и менять параметры запуска.

Тут сложнее - эта ерунда работает во втором томкете, который пускается из основного и параметры которого генерируются JAR'кой.
И оно принимает только определённые параметры на вход, типа размера кучи.

Yustas ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.