Как мне сказать удаленному отладчику на самом деле приостановить в какой-то момент?
Я использую отладчик IntelliJ Idea, и у меня есть какое-то стороннее приложение с его источниками (не должно иметь значения, но оно гипер). Мне нужно посмотреть, когда выполняются некоторые методы и проследить процесс выполнения. Я успешно подключился к приложению с помощью удаленной отладки приложения, но не могу понять, что делать дальше. O_o
Можно приостановить приложение, но как прикрепить исходники и сообщить ему, когда именно приостановить (вызов метода / строка кода / и т. Д.)?
РЕДАКТИРОВАТЬ: В качестве альтернативы я мог бы использовать затмение (не имеет значения, что использовать, если он работает).
EDIT2: Это не один из моих проектов / модулей / что угодно.
3 ответа
Откройте исходный код в редакторе и установите точку останова.
Отладчик должен быть достаточно умен, чтобы понять, чего вы хотите достичь.
[РЕДАКТИРОВАТЬ] Создайте небольшой проект, который содержит источники и все файлы JAR. Это должно скомпилировать без ошибок и позволить вам установить точки останова.
В Eclipse вы можете прикреплять источники к JAR-файлам. Таким образом, вы можете установить точки останова.
Для отладки удаленного приложения вам нужны его источники в вашем проекте eclipse (независимо от IDE). А затем просто установите точки останова и запустите удаленный отладчик с соответствующим портом.
Возможно ли, что исходный код не синхронизирован с исполняемым кодом? У меня было такое раньше, так что точка останова, которую я установил, была на самом деле неисполняемой строкой (пробел, комментарий) в соответствии с версией кода на удаленной машине.
Единственный раз, когда я видел что-то подобное, было, когда на удаленной машине было запущено несколько JVM, и я случайно подключился к неправильному порту (и, следовательно, к неправильной JVM).
Когда вы отлаживаете, красная точка, которая представляет точку останова, должна немного измениться, как она выглядит во время отладки? Например, если строка неисполняемая, я думаю, что будет точка X сверху точки.