Как разработчик, необходимо освоить навыки отладки в среде развития. При написании программ Java мы часто сталкиваемся с различными необъяснимыми проблемами. Чтобы определить, где программа проблематична, нам часто нужно добавлять журналы, чтобы увидеть значение переменных, поэтому отладка очень хлопотно. Предположим, я провожу 1 час в день отладки своей заявкой, это будет много времени, если оно накапливается. По этой причине используйте это время, чтобы оценить и понять все функции, которые заставляют нас отладки более удобной. Это может сэкономить вам некоторое время, а также сделает вашу жизнь более комфортной и расслабленной.
1. Отладочный представление
Наиболее часто используемые окна в отладке:
| окно | иллюстрировать |
|---|---|
| Отладка окна | В основном отображает стек вызовов метода текущего потока, а также количество строк кода (код с информацией отладки) |
| Окно точек останова | => Окно списка перерывов, которое может облегчить добавление точек останова, установки условий точки останова, удаления точек останова и т. Д. |
| Переменные окно | => Отобразить локальную переменную текущего метода, нестатический метод, включая это приложение, может изменить и изменить значение переменной |
| Окно редактирования кода | => Излишне говорить больше |
| Выходная консольная окно | => Журналы и другие выходные контенты. Во время отладки вы можете установить уровень внимания компонента на немного ниже, чтобы получить несколько выходной информации. |
Кроме того, вспомогательные окна:
| окно | иллюстрировать |
|---|---|
| Выражение выражения окна | => Напишите выражение данных, необходимых для наблюдения, или изменить значение счетчика |
| Отображение окна | => Может выполнить кодовые блоки, выходной контент и т. Д. На дисплее |
| Окружение наброска | => Просмотреть методы, переменные и т. Д. Текущего класса |
| Тип иерархии окно | => Проверьте уровень наследования текущего класса, включая интерфейсы реализации и уровни наследования класса |
| Окно иерархии вызовов вызовов | => Проверьте, какие методы называются, какие классы называются, а какая строка - соответствующий метод, можно открыть напрямую |
| Окно поиска поиска | => Объединяя клавиши ярлыков, вы можете просмотреть местоположения кода, на которые ссылаются или определены в рабочих местах, проекте и рабочих наборах. |
1) Полный вид окна:
2) Просмотр отладки (представление стека потоков):
Представление отладки позволяет вам управлять отладкой программы и запуска на Workbench. В нем показаны рамы стека потоков, приостановленных в программе, которую вы отладки, и каждый поток в программе появляется как узел дерева. Он показывает процесс для каждой запуска. Если поток приостановлен, его кадр стека отображается как дочерний элемент. Вот несколько часто используемых кнопок отладки:
1. Указывает, что текущая реализация продолжает работать до следующей точки остановки, а клавиша ярлыка - F8.
2. это означает прерывание всего процесса
3. Это означает вход в текущий метод, а клавиша ярлыка - F5.
4. Это означает запуск следующей строки кода, а клавиша ярлыка - F6.
5. Это означает выход текущего метода и возврат к вызову. Ключ ярлыка - F7.
6. Представление стека текущего потока, из которого вы можете увидеть, какой запускается код, и весь процесс вызова, а также номер строки кода
Подробное введение:
Пропустите все точки останова: установите все точки останова на пропущенные. После того, как он пропустил все точки останова, на всех точках останова будет сглаш, указывающий на то, что точка останова будет пропущена, а поток не будет приостановлен в точке останова.
Dop To Frame: эта команда позволяет программе вернуться к началу текущего метода и снова запустить выполнение. Вы можете повторно рассказать о раме стека Java. Вы можете выбрать указанный кадр стека, а затем нажать Drop to Frame, чтобы вы могли повторно ввести указанный кадр стека. Обратите внимание на использование Drop to Frame:
1. Не может попасть в метод в уже выполненном стеке методов.
2. При падении в кадр стека исходное значение глобальных данных не будет изменено. Например, вертер, содержащий элементы, не будет очищен.
Пошаговые фильтры: эта функция относительно проста. Когда мы хотим игнорировать некоторые классы, на которые мы не обращаем внимания при отладке, мы можем включить пошаговые фильтры для фильтрации. Программа будет продолжать выполняться до тех пор, пока не будет обнаружена нефильтрованная позиция или точка останова. Функция шага Filters состоит из четырех элементов: используйте шаг фильтры, редактирование шага фильтров, тип фильтра и пакет фильтров. Конкретные операции следующие:
Шаг 1: Windows -> Preferences -> Java -> Debug -> Step Filtering.
Шаг 2: Выберите «Использовать шаг фильтры»
Шаг 3: Выберите нужную опцию на экране. Вы можете добавить часть кода в собственную кодовую базу.
Шаг 4: Нажмите «Применить»
В принципе, команда Filter Filter Edit используется для настройки правил фильтра шага, в то время как тип фильтра и пакет фильтров обращается к фильтруемым типам Java и пакете Java соответственно.
Шаг возврата: отскочить из текущего метода. Во время выполнения метода вызываемого, использование шага возврата будет выпрыгнуть из метода и вернуться к методу, который вызывает метод после выполнения всего кода текущего метода.
Шаг сверху: при выполнении одного шага, при встрече с подфункцией в функции она не будет входить в подфункцию, чтобы выполнить один шаг, но остановит все выполнение подфункции, то есть вся подфункция выполняется как один шаг.
Вступите в: шаг в: шаг, введите и продолжайте вмешаться при столкновении с подфункцией.
Резюме: восстановление приостановленной нити и прыгая непосредственно с текущей позиции в следующую позицию точки останова.
Приостановка: приостановите выбранную поток, и вы можете просмотреть или изменить код, проверить данные и т. Д.
Eclipse поддерживает подвеску и восстановление потока через приостановку и резюме. Вообще говоря, приостановка подходит для отладки многопоточных программ. Когда нам нужно просматривать кадр стека и значения переменных в определенном потоке, мы можем приостановить поток через команду приостановки. Резюме используется для восстановления.
Есть два типа резюме, которые требуют внимания:
Первым является изменение кода программы во время процесса отладки, сохранить его и нажмите «Резюме», и программа будет временно приостановлена в точке останова.
Во -вторых, когда программа бросает исключение, запустите резюме, и программа также будет временно приостановлена в точке останова.
Прекращение: Eclipse завершает отладку местных программ через команду Dellinate.
Отключить: Eclipse использует команду Dinnonnect для завершения подключений сокетов для удаленных JVM.
1. Отладка и выполнение
| отметка | Функция | Ключ ярлыка | описывать |
|---|---|---|---|
| 6.4 | Шаг информация | F5 | -> шаг в (если есть вызов метода, он введет метод вызова для отладки); |
| 6.4 | Шаг | F6 | -> Пропустить шаг за шагом (в любом методе вызова, который не входит в строку, непосредственно выполнить текущую строку кода и перейти к следующей строке); |
| 6.4 | Шаг возвращается | F7 | -> Вернуть на один шаг (выполнить текущий метод, выпить текущий метод из стека вызовов и вернуться в местоположение вызова, где вызывается текущий метод); |
| 6.5 | Резюме | F8 | -> возобновить нормальное выполнение (до тех пор, пока не появится следующая точка останова); |
| 7.4 | Бежать, чтобы линии | Ctrl+r | -> Выполнить текущую строку (все точки останова в середине будут игнорироваться и выполняться до линии, где находится текущий курсор); |
| 6.3 | Упасть в рамку | никто | -> Вернись к началу указанного метода, эта функция довольно хороша. Щелкните правой кнопкой мыши метод в стеке вызовов метода и выберите Drop to Frame, чтобы выполнить из начала метода, например, повторно рассредоточьте этот метод. Вы можете использовать Drop to Frame на этом методе, чтобы повторно выполнить его из первой строки этого метода. Конечно, для методов с побочными эффектами, такими как операции базы данных, изменение содержания объекта в передаваемых параметрах и т. Д., Это может быть повторно обречено содержание желаемого контента. |
| 6.1+6.2 | Копировать стек | никто | -> Скопировать текущую информацию о стеке потоков |
Если вам нужно исключить некоторые классы, пакеты и т. Д. Во время отладки, вы можете использовать настройки редактирования Step Filters.
Свойства A6: информация о запуске процесса Java, включая параметры запуска консоли, параметры среды и т. Д. Если есть какие -либо проблемы с параметрами запуска параметров, вы можете сначала проверить, являются ли фактические параметры запуска здесь неправильными. Вы также можете просмотреть соответствующие варианты виртуальных машин для поддержки отладки.
2. Просмотр данных
| отметка | Функция | Ключ ярлыка | описывать |
|---|---|---|---|
| 7.4 | Осмотреть | ctrl+shift+i | -> Посмотреть выбранную переменную, значение выражения или результат выполнения, нажмите Ctrl+Shift+I снова, чтобы добавить текущее выражение или значение в окно выражения для просмотра; |
| 7.4 | Отображать | ctrl+shift+d | -> Отображение выбранной переменной, значения выражения или результата выполнения. Нажмите Ctrl+Shift+D снова, чтобы добавить текущее выражение или значение в окно отображения, чтобы отобразить; |
| 7.4 | Выполнять | Ctrl+U. | -> выполнить выражение выбора; |
| 7.4 | Бежать, чтобы линии | Ctrl+r | -> Выполнить текущую строку (все точки останова в середине будут игнорироваться и выполняться до линии, где находится текущий курсор); |
| 7.3 | Все случаи | ctrl+shift+n | -> Просмотреть все объекты выбранного класса, эта функция превосходна; |
| 7.3 | Количество экземпляров | никто | -> Просмотреть количество всех объектов в выбранном классе; |
| 7.4 | Смотреть | никто | -> Добавить текущую переменную и выражение в окно экспрессии; |
3) Просмотр переменных (представление переменной)
1. Для представления имени переменной отобразите все переменные экземпляра и локальные переменные, к которым можно получить доступ в текущей строке кода.
2. Отображение всех значений переменных
3. Значение переменной можно изменить через это окно
Просмотр переменных отображает информацию переменной, связанную с кадром стека, выбранной в представлении отладки. При отладке программ Java переменные могут выбрать более подробную информацию на панели деталей. Кроме того, объекты Java также могут отображать значения свойств, которые они содержат. Выберите переменную в этом окне и щелкните правой кнопкой мыши, чтобы выполнить многие операции, основные операции заключаются в следующем:
Все экземпляры: Откройте диалоговое окно для отображения всех экземпляров класса Java. Использование этой функции требует от виртуальной машины Java для поддержки поиска экземпляра.
Все ссылки :: Откройте диалоговое окно, чтобы отобразить все объекты Java, которые ссылаются на переменную.
Изменить значение :: Измените значение переменной. Эта функция может использоваться в сочетании с Drop to Frame для отладки программы. Используйте эти две функции вместо повторного дебага
Копировать переменные: скопируйте значение переменной, особенно когда значение переменной очень длинное (например, данные JSON), эта функция пригодится.
Найдите: иногда, когда в классе много переменных, вы можете искать.
4) Просмотр точек останова (представление точки останова)
1. Покажите все точки останова
2. Несмотря на признание выбранный порт в текущем окне 1 и нажмите снова включить.
3. Исполнение точки останова
Просмотр точек останова будет перечислять все точки останова, которые вы устанавливаете в текущем интервале работы. Дважды щелкните точку останова, чтобы войти в местоположение точки останова в программе. Вы также можете включить или отключить точки останова, удалять, добавить новые и группировать их на основе рабочих групп или количества точечных ударов. Есть две методы, которые очень полезны при использовании точек останова:
Подсчет хит: он указывает, сколько раз сегмент кода запускается в точке останова. Наиболее типичным является петля. Если цикл должен быть выполнен 10 раз, а поток приостановлен, то значение количества попадания составляет 10, а текущий цикл будет висеть, когда он будет выполнен 9 -е.
Условный: Как следует из названия, это условное суждение. Например, когда нам нужно зацикливаться на переменной i == 10, поток подвешивается, то условие устанавливается на i == 10 и выбирать приостановку, когда «true».
Если выбранные выше количество ударов и условное количество, он будет недействительным, если настройки выражения и значения не являются необоснованными. Если вы выберете приостановку при изменении значения, условное может зависеть при изменении переменного значения.
5) Представление выражений (представление выражения)
1. Выражения
2. Нажмите здесь, чтобы добавить новое выражение
Чтобы найти значение выражения в редакторе перспективы отладки, выберите всю строку с набором точек останова и выберите опцию осмотреть в контекстном меню. Выражение оценивается в контексте текущей кадры стека, и результат отображается в представлении выражений окна отображения. Например, если я хочу рассчитать значение переменной A+B, то я могу добавить выражение в представление выражения: A+B
6) Вид отображения
Вы можете использовать это представление, чтобы ввести или вычислить какой -то новый код. Этот код выполняется в контексте текущего местоположения отладки, что означает, что вы можете использовать все переменные и даже помощники контента. Чтобы выполнить свой код, просто отметьте его и используйте меню правой кнопкой мыть
7) Вспомогательное окно просмотра кода
1. Просмотр кода:
Просмотр кода, используемый для отображения конкретного кода. Зеленая часть относится к коду, который в настоящее время выполняется
| отметка | Функция | Ключ ярлыка | описывать |
|---|---|---|---|
| 11,1 ~ 11,5 | иерархия быстрого типа | Ctrl+T. | Проверьте уровень наследования текущего класса и интерфейса. При входе по умолчанию отображается подкласс наследования/реализации текущего класса/метода, и отображается подводная площадь 11.1; Ctrl+T снова будет отображаться суперкласс/интерфейс 11.2 Наследование/реализация текущего класса и интерфейса. Во время отладки эта функция часто используется для просмотра класса реализации 11.4 при вызове метода интерфейса или абстрактного класса, и непосредственно перейти к соответствующему методу реализации 11.5. |
| Быстрый набросок | ctrl+o | Ознакомьтесь с контуром текущего класса, включая методы, атрибуты и т. Д.; Это мало используется; | |
| открытые объявления | F3 | Просмотреть определения переменных, свойств и методов |
2. Позвоните в окно иерархии:
| отметка | Функция | Ключ ярлыка | описывать |
|---|---|---|---|
| 12.1 ~ 12.2 | Открытый вызов иерархии | ctrl+alt+h | Проверьте метод, называемый уровнем, вы можете увидеть, где называется текущий метод 12.1, или текущий метод вызывает другие классы методов 12.2 |
3. Введите окно иерархии:
| отметка | Функция | Ключ ярлыка | описывать |
|---|---|---|---|
| 13.1 ~ 13.4 | иерархия открытого типа | F4 | Проверьте уровень наследования, вы можете просмотреть уровень наследования класса, включая класс родительского класса дочернего класса 13.1 или уровень наследования интерфейса 13.2, реализованный классом. Схема класса 13.3 и 13.4 будет отображаться справа в соответствии с выбранным классом/интерфейсом; 13.3 может выбрать, отобразить ли свойства, методы и т. Д. Источенного интерфейса класса/родительского класса. |
4. Поиск окна:
| отметка | Функция | Ключ ярлыка | описывать |
|---|---|---|---|
| 14.1 | Декларации | Ctrl+G. | Та же самая подпись метода определена в рабочей области и в сторонней пакете JAR 14.1. |
| 14.2 | Ссылки | ctrl+shif+g | В настоящее время выбранные переменные, свойства и методы ссылаются в рабочем пространстве и в сторонней пакете JAR 14.2 |
| 14.3 | ctrl+shift+u | Просмотреть, где переменные, свойства и методы появляются в текущем классе14.3 | |
| 14.4 | Орудия | Просмотреть класс 14.8, который реализует текущий интерфейс | |
| 14.4 ~ 14.7 | Метод отображения | Вы можете выбрать различные методы отображения и увидеть изображение для деталей |
2. отладка
1. Установите точку останова
В файле исходного кода, в помеченной строке перед строкой кода, вы хотите установить точку останова, дважды щелкните левую кнопку мыши, чтобы установить точку останова, и снова щелкните снова в той же положении, чтобы отменить точку останова. Иногда у нас все еще есть такая потребность, то есть я не хочу выполнять строку кода по строке. Например, A For Loop будет проходить более 1000 раз. Я просто хочу, чтобы нить повесилась для отладки в 500 -й раз. В настоящее время мы можем использовать условные точки останова. Установить условия точки останова: мы можем установить условия триггера для этой точки останова. После того, как определенное состояние будет выполнено, мы можем начать отладку. Вы можете щелкнуть правой кнопкой мыши точки останова и выбрать свойства точки останова, чтобы ввести страницу «Настройки точки останова». Когда мы говорили о точке перерыва, мы узнали об использовании количества попадания и условного. Здесь мы можем установить условия и количество казней.
1.1) Тип точки останова и окно точки останова
Существует пять типов точек останова, которые можно установить во время отладки:
1. Точки останова линии: условные точки останова, как следует из названия, являются точками останова с определенными условиями. Только когда условия, установленные пользователем, останутся кодом, когда он работает в точку останова.
2. Метод точки останова: особая вещь о точках перерыва метода заключается в том, что их можно попасть в исходный код JDK. Поскольку JDK удаляет информацию отладки во время компиляции, обычные точки останова не могут быть достигнуты внутри, но возможны точки останова метода. Вы можете просмотреть стек вызовов метода с помощью этого метода.
3. Наблюдайте за точками останова (изменение доступа к переменной-точкам для проборов)
4. Особенность точек останова
5. Нагрузки класса.
Настройки каждого типа точки останова немного отличаются. Вы можете щелкнуть правой кнопкой мыши на точке останова -> Свойства Breakpoint, чтобы установить его, но, как правило, есть интерфейс быстрого настройки в окне точки останова. В свойствах точки останова больше фильтра, что на самом деле довольно бесполезно и не очень полезно.
Связанные с перерывами клавиши: клавиши:
| Ключ ярлыка | иллюстрировать |
|---|---|
| ctrl+shift+b | Большая точка останова/отмена точки останова в курсоре |
| Ctrl+alt+b | Игнорируйте все точки останова |
| Alt+shift+Q, b | Активировать окно точки останова |
1. Точка останова линии: точки разрыва 1.1 и 1.4 на определенной линии в методе. Точки останова линии могут установить условие приостановки потока/VM 1.3 и количество доступа 1.2.
Условие в 1.3 заключается в том, что когда пружина регистрирует определение бобов (RegisterBeandefinition), если это org.springframework.demo.mybean, поток будет приостановлен, и вы можете начать пошаговую отладку.
Для использования количества ударов 1.2, как правило, в цикле. Если возникает проблема с обработкой NTH объекта, установите count Hit Count = N. во время повторного дебага, может быть удобно прекратить отладку, когда количество циклов, которые необходимо отлаживать.
2. Метод точки останова: точки останова 2.1 и 2.2 на методе. Преимущество методов точек останова состоит в том, что они могут останавливаться и отлаживать при входе или выходе из метода метода. Они похожи на точки останова строк, и только точки останова строк и точки перерыва методов имеют функции установления условий и времени доступа.
Тем не менее, методы точки останова имеют еще одно преимущество. Если код скомпилирован, указанная точка разрыва строки не работает, поэтому вы можете нажимать только точки остановки метода.
Если вы заинтересованы, вы можете удалить крюк перед добавлением номера строки ... через A1 и отладить его и взглянуть.
3. Соблюдайте точки останова: точки останова 3.1 и 3.3 попадают на переменные члена. Только переменные элемента объекта имеют эффект, статические переменные члена не работают.
Вы можете установить поток/VM 3.2, чтобы быть приостановленным, когда переменная доступна или установлена, то есть все методы доступа или установки переменных элементов, аналогичные 3.4, будут контролироваться.
4. Точка перерыва исключений: точки останова исключения могут быть добавлены через 4.6, или нажмите на вывод информации класса исключений в информации журнала.
Исключение точка останова 4.1. Когда в системе происходит исключение, потока/виртуальная машина приостановлена в положении броска захваченного исключения или в месте, где выбросит исключение 4.2 и 4.4, которые программа не запечатлевает, и может также указать, также обнаружены подклассы, которые включают исключения, также 4,3 и 4.5.
В дополнение к ненормальной подвесной набору выше, вы можете установить выполнение приостановки от Java-> Debug, в основном два:
1. Происходит ли приостановка исполнения на нехваченных исключениях. Во время отладки всегда существует приостановка исключения, которая влияет на отладку, но не установлена точка останова исключения, вы можете проверить эту опцию;
2. Будь то приостановлено во время ошибок компиляции, эта ситуация обычно возникает при отладке и изменении кода;
Еще одна вещь, чтобы упомянуть, что приложение с основным методом начинается. Вы можете проверить остановку в основной A3 в конфигурации отладки. Когда программа вступит, поток будет приостановлен и ожидает отладки.
5. Класс загрузка точки останова: точка останова 5.1 была нанесена на имя класса. Класс загрузка точек останова не может быть установлена на интерфейс, но абстрактные классы в порядке. Тем не менее, во время отладки точки останова, очевидно, не введут класс -загрузчик. Известно, что пошаговая запись входит в метод построения подкласса. После приостановки потока, неабстрактные классы войдут в класс загрузку (если нет фильтрации фильтра) 5.3. Независимо от того, попадает ли классная точка перерыва на абстрактном или неабстровом классе, поток/VM5.2 будет приостановлен, когда класс загружен в первый раз, или первый подкласс загружается в первый раз.
2. Отладка программы
1. Отладка местных языковых программ Java
Среди всех отлаживания отладка программы Java является самой простой, в основном включая установку точек останова, начало отладки, прохождения и окончания отладки.
1) Установить точки останова:
2) Начать отладку: Eclipse предоставляет четыре способа начать отладку программы (запуск), а именно через меню (Run> Debug), Icon («Green Bed»), Right-> Debug AS A и Cortkut Key (F11). В связи с этим это похоже на другие команды (например, запуск).
Выскакивает подсказку. Вам нужно переключиться на рабочую область отладки, проверить «Помните мое решение», не забудьте выбрать, и в следующий раз не будет предложено никакой подсказки, а затем нажмите [Да].
3) Одностадийное выполнение: в основном используйте несколько представлений, упомянутых выше для отладки, среди которых несколько кнопок в представлении отладки имеют ярлыки:
Step Retuen (F7)
Шаг над (F6)
Шаг в (f5)
Конец отладки: прекращение отладки локальной программы через команду прекращения.
2. Дело
Сценарий 1: Сяо Мин написал исполнителя задачи, который был выполнен непрерывно. После запуска онлайн в течение некоторого времени он обнаружил, что существует вероятность некоторых неудач. После запуска в течение некоторого времени исполнитель задания вышел ненормально. Поскольку это был нулевой указатель, Сяо Мин хотел отлаживать локально и не знал, где находится точка останова. Эта проблема является вероятностным событием и не обязательно появится. Таким образом, после того, как Сяо Мин несколько раз отлаживался, он был головокружительным и даже не мог ясно видеть код. Сяо Мин хотел иметь точку остановки и остановиться и позволить ему найти проблему всякий раз, когда происходит исключение с нулевым указателем. Это было бы здорово.
Исключение точка останова
Точка перерыва исключений: в процессе поиска проблемы вы часто сталкиваетесь с точками останова, которые не могут быть достигнуты до соответствующей позиции, которая сильно отличается от триггерной точки проблемы. Так что в это время вы можете попробовать точку останова. Как следует из названия, точка перерыва исключений относится к точке останова, которая автоматически висит после выброса определенного исключения.
Нажмите на красную часть, чтобы добавить ненормальную точку разрыва
Введите тип исключения, который вы хотите найти, например, NullPointerException. Таким образом, после того, как любое исключение NullPointerException будет добавлено в систему, текущий поток будет приостановлен, что дает вам возможность найти проблему.
Сцена 2: Сяо Мин написал огромную петлю. При настройке кода Сяо Мин обнаружил, что всякий раз, когда петля достигает 100 000 000, возникла проблема, и это не соответствовало его ожиданиям. Таким образом, Сяо Мин сделал точку останова в петле, желая увидеть, что происходит, но Сяо Мин никогда не думал о том, как трудно будет достичь 100 000 петель. В настоящее время Сяо Мин уже начал много думать, если бы была такая точка перерыва:
Если количество петлей == 100000, поток останавливается
Условная точка останова
Как показано на рисунке справа, петля 1000 раз. Если вы хотите остановиться при перецине до 500 раз, вы можете создать условную точку останова и щелкнуть правой кнопкой мыши точки останова, чтобы повесить свойства точки останова.
Выберите условие включения
В бланке добавьте свое собственное состояние. Если условие вернет истину, поток будет приостановлен. Если ложь, исключение будет проигнорировано.
Хит Count официально приостанавливает нить после прохождения точки останова. Если он установлен на 500, первые 499 раз будут выражены, и он не остановится после точки останова. Когда точка останова будет 500 -й раз, точка останова приостановит текущий поток.
выражение
Выражения могут просмотреть некоторые командные строки, которые недоступны в текущем коде, чтобы облегчить позиционирование проблем.
Сцена 3: Сяо Мин недавно столкнулся с проблемой. При вызове стороннего плагина всегда есть проблемы. Сяо Мин подозревал, что это была ошибка стороннего плагина, но Сяо Мин не нашел исходный код и не смог его отладить. Что должен делать Сяо Мин?
Отладка нацеливания сторонних плагинов
1. Декомпиляция кода с помощью инструмента декомпиляции
2. Отфильтруйте декомпилированный исходный код
3. Исправить ошибки компиляции исходного кода
4. отладка
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.