Отслеживание выполнения Java-программы, запущенной на удаленной машине * nix - PullRequest
1 голос
/ 15 марта 2011

Я пытаюсь отладить программу, запущенную на удаленной машине Solaris. Я хотел знать путь, пройденный программой во время выполнения, как трассировка кола как

Class A.method1 called method2 in class B
Class B.method2 called method3 in class C
..
...
Control returned from method2 in class B to
method1 in Class A etc

Мы не можем запустить программу из Eclipse, так как среда не может быть воспроизведена, поскольку это крупная система уровня предприятия, имеющая множество систем восходящего и нисходящего потоков.

Я подозреваю, что где-то в программе выдается исключение, которое не обрабатывается должным образом, как пустой блок перехвата / не ведение журнала или перебрасывание исключения.

Каков наилучший способ отладки таких программ. Пожалуйста, помогите мне с вашими решениями.

Ответы [ 6 ]

2 голосов
/ 15 марта 2011

Вы можете использовать Eclipse для отладки удаленных приложений, все, что вам нужно сделать, это добавить несколько параметров запуска: http://eclipse.dzone.com/articles/how-debug-remote-java-applicat

1 голос
/ 19 июня 2011

Если вы хотите отследить выполнение вашего Java-кода, вы можете использовать инструмент под названием InTrace .

InTrace поддерживает вывод трассировки из Java-программы на диск или по сети дляинтерфейс InTrace.Это должно быть идеально для отладки вашей Java-программы на удаленном компьютере Solaris.

ПРИМЕЧАНИЕ. InTrace - это бесплатный инструмент с открытым исходным кодом, который я написал.

1 голос
/ 15 марта 2011

Вы можете отлаживать удаленно с помощью eclipse, см. this

0 голосов
/ 29 июня 2019

в таких случаях я использовал Btrace https://dzone.com/articles/introduction-btrace, для этого не требуется ни устанавливать удаленный отладчик, ни иметь исходный код вашего Java-приложения.

Другой способ - запустить jdb https://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html и присоединиться к процессу - но вы должны разрешить JVM процесса использовать jdwp -agentlib: jdwp = transport = dt_shmem, server = y, suspend = n

В целом я согласен с тем, что в JDK отсутствует профессиональный встроенный инструмент трассировки / отладки

0 голосов
/ 15 марта 2011

Поскольку ваша удаленная машина работает под управлением Solaris, вы можете использовать DTrace для динамического добавления зондов в работающую JVM и всю систему.

0 голосов
/ 15 марта 2011

Вы можете выполнять удаленную отладку, которую поддерживает Eclipse, но она может быть запрещена системным администратором.Единственное, о чем я могу думать, это много-много журналов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...