«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Отладка без точек останова

Отладка без точек останова

Опубликовано 14 августа 2024 г.
Просматривать:400

Читать на других языках: English Español 中文

В типичном сценарии отладки вы должны установить точки останова, чтобы сообщить отладчику, когда приостановить вашу программу. Точка останова обычно соответствует моменту, который отмечает отправную точку для дальнейшего исследования.

Решение, где установить точку останова, может оказаться непростой задачей. Могут возникнуть ситуации, когда точная строка неясна, или вы можете предпочесть приостановить программу по времени, а не по конкретному коду.

В этой статье мы рассмотрим функциональность Программы паузы IntelliJ IDEA — менее известного метода отладки, который может быть чрезвычайно мощным в некоторых сценариях, включая описанные выше. Мы обсудим варианты его использования и ограничения, а также шаг за шагом раскроем секрет.

Что такое Пауза?

Программа паузы — это функция отладчика IntelliJ IDEA, которая позволяет произвольно приостанавливать работу приложения в любой момент времени. Более того, вам даже не нужно знать код приложения. На самом деле, вы можете просто игнорировать это!

Depurar sem Pontos de Interrupção

Чтобы приостановить программу, нажмите Приостановить программу на панели инструментов отладчика. Затем программа остановится прямо в середине того, что вы делаете.

Ограничения

На первый взгляд приостановленная программа может выглядеть точно так же, как программа, приостановленная в точке останова. Однако это верно лишь до определенной степени.

Depurar sem Pontos de Interrupção

Было бы правильно считать Программу паузы своего рода дамп потока плюс. Вы по-прежнему можете проверять как переменные, так и потоки, как обычно. Однако некоторые более продвинутые функции, такие как Оценить выражение, работать не будут.

Варианты использования

Существует бесчисленное множество способов использовать Программу паузы. Его часто можно использовать взаимозаменяемо с традиционными точками останова. Однако существуют сценарии, в которых использование Программы паузы является более подходящим подходом. Давайте рассмотрим некоторые из них.

Не отвечающие приложения

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

Depurar sem Pontos de Interrupção

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

Отсутствуют шрифты

Как упоминалось ранее, Программа паузы позволяет вам просто игнорировать исходный код, который в любом случае может отсутствовать. Хотя этот сценарий не очень распространен, когда вы столкнетесь с ним, точки останова не помогут.

Здесь в игру вступает Программа паузы!

Depurar sem Pontos de Interrupção

Замки

Если вы подозреваете, что возникла проблема с синхронизацией, например взаимоблокировка или активная блокировка, Программа паузы поможет вам найти точные потоки и блокировки, вызывающие проблему.

Depurar sem Pontos de Interrupção

В этом случае приостановите работу программы и просмотрите список тем. Он покажет, какие потоки заблокированы. При переходе к точке выполнения вы также увидите критические разделы, где они заблокированы. Эта информация может помочь вам найти решение.

Секретный пошаговый совет

Как я упоминал ранее, Программа паузы ограничивает ваш доступ к некоторым расширенным функциям отладчика. Если вы пытались использовать определенные функции, когда приложение приостановлено, возможно, вы видели сообщение об ошибке: Невозможно оценить методы после действия приостановки.

Depurar sem Pontos de Interrupção

Однако есть способ обойти это ограничение.

После того как вы приостановили работу приложения, продолжайте выполнять любые действия шаг за шагом. Подойдет Step Into или Step Over. Как только это будет сделано, вы перейдете в обычный сеанс отладки, аналогичный тому, как вы приостанавливаете приложение с помощью точки останова. Все расширенные функции теперь разблокированы!

Заключение

На сегодня всё! Надеюсь, эти советы и рекомендации окажутся вам полезными.

Если вас интересуют дополнительные статьи, связанные с отладкой и профилированием, ознакомьтесь с другими моими статьями:

  • Debugger.godMode() — взлом JVM-приложения с помощью отладчика
  • Устранение неполадок, связанных с медленной работой отладчика
  • Отладка неактивных приложений
  • Что не так с createDirectories()? - Руководство по профилю ЦП

Если вы хотите, чтобы я рассказал вам что-то особенное об отладке в Java, не стесняйтесь обращаться к нам! Ваше мнение поможет расставить приоритеты и опубликовать тот контент, который вам наиболее интересен.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/flounder4130/depurar-sem-pontos-de-interrupcao-5ekk?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3