2010-07-06 2 views
3

Как отслеживать стек через затмение? В моем коде я пытаюсь загрузить файл, когда я выполняю действие по загрузке файлов в приложении, он просто зависает без сообщений об ошибках. Я пробовал отлаживать, но это мало помогло.Трассировка стека в eclipse

ответ

1

Я бы рекомендовал пройти через отладчик eclipse, чтобы узнать, где он висит. При этом вы автоматически увидите трассировку стека.

Я считаю, что функция «шаг в» (F5) наиболее полезна, это позволяет вам рекурсивно спускаться в функции, чтобы исследовать, что происходит.

Вы можете установить контрольные точки в начале кода загрузки файла, чтобы вы могли начать переход примерно в нужное место. В моей версии Eclipse трассировка стека появляется в верхней левой панели «Debug» под соответствующим потоком.

2

Предполагая, что вы запускаете приложение из Eclipse, но внутри контейнера Java EE, например Glassfish или Tomcat, вызов метода printStackTrace() для объекта исключения (при обнаружении) отображает трассировку стека в окне консоли в Eclipse , В вашем случае вам сначала нужно знать, возникает ли вообще исключение. Я бы не рекомендовал создавать объект Exception во время выполнения, чтобы вывести из него стек.

Это, конечно, не очень хорошая практика при написании кода качества продукции, и вы должны посмотреть на использование структуры ведения журнала, например log4j, jul или slf4j, для отслеживания поведения приложения.

Если нажатие нажимается, включите отладку контейнера сервлетов (это зависит от контейнера к контейнеру), чтобы вы могли отслеживать поведение самого контейнера в дополнение к вашему приложению.

2
  • На сервере запустите «jvisualvm» в папке bin JDK как тот же пользователь, что и начатый Glassfish.
  • Присоединитесь к процессу Glassfish, дважды щелкнув соответствующую запись в разделе «Local».
  • На панели «Нити» нажмите кнопку «Сброс резьбы».
  • Скопируйте трассировку стека в буфер обмена.
  • В Eclipse вставьте трассировку стека в панели просмотра стека Java Stack в панели консоли.
Смежные вопросы