У меня есть проблема, когда ключевой нить в моей игре становится заблокированной по причине отсутствия видимости.
Как я могу найти строку кода, которая пытается выполнить в момент блокировки потока?
Я использую Eclipse IDE.
Благодарю!
Вы можете использовать отладчик Eclipse для него. Не запускайте приложение через обычную кнопку запуска, но с помощью кнопки отладки, кроме нее.
Играйте в свою игру и создавайте ситуацию, которая закончится в тупике. Затем вы можете перейти в Eclipse и перейти на перспективу отладки. Вы увидите все запущенные потоки и выполняемые методы (точнее, полный стек).
Когда приложение заблокировано, вам нужно сделать дамп потока. С консоли должно быть что-то вроде:
jstack <pid>
или:
kill -3 <pid>
где <pid>
- это идентификатор процесса jvm, запускающего ваше приложение.
Это скажет вам, где именно поток блокируется вместе с stacktrace, которые приводят к выполнению этой части кода.