Debug options что это за программа

Содержание

Настройка отладчика программ реализуется командой Tools/ Op­tions/De­­bug, а его запуск ‑ командой Tools/Debugger (рисунок 2.17.1).

Кнопки панели отладчика

Open, Resum, Cancel ‑ выбор, продолжение и прекращение выполнения программы соответственно.

Step, Step Over, Step Out ‑ выполнение следующего шага, вызов процедуры за один шаг, выполнение всей программы соответственно.

Run to cursor — выполнение программы до текущего положения курсора.

Toggle/Clear all breakpoints ‑ установка/удаление точек оста­но­ва.

Остальные кнопки открывают соответствующие окна отладки.

Команды меню отладчика, дополняющие действия кнопок:

Exit ‑ выход из отладки;

Load/Save Configuration ‑ выбор/сохранение конфигурации;

Save Output As ‑ сохранение состояния окна вывода “Debug Output”;

Fix ‑ запрос о прекращении выполнения программы;

Throttle ‑ установка скорости трассировки программ;

Set Next Statment ‑ установка маркера текущей строки на заданную строку;

Debugger basics in IntelliJ IDEA (Mala Gupta)

Clear Output Window ‑ очистка окна “Debug Output”;

Cascade ‑ расположение окон каскадом;


Restore to Default ‑ восстановление окон отладчика.

Рис. 2.17.1. Окна отладчика

Точки прерывания установливаются двойным щелчком на маркер­ной серой полосе слева от команды в предполагаемых местах ошибок или в окне Breakpoints, вызываемого кнопкой Breakpoint Dialog (рисунок 2.17.2). Ис­поль­зуя поле Type, можно задать условия прерывания (когда указанное выражение истинно или изменяет свое значение). Точки прерывания можно за­давать в виде: .. Номер строки можно отоб­ра­зить командой Tools/Options/Debug/Show line numbers. Поле Pass count задает число выполнения строки кода перед прерыванием.

Общаясхема отладки

Установка точек прерывания.

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

Дальнейшее выполнение в пошаговом режиме или до следующей точки прерывания путем выполнение команды Resum.

Профиль выполнения программы используется для ее анализа. Для формирования файла профиля (с расширением LOG) исполь­зу­ет­ся команда отладчика Tools/Coverage Logging. Для просмотра содержимого это­го файла используется ко­манда Tools/Coverage Pro­­filer. Окно Coverage Profile содержит панель с кнопками: Open/Save (отк­рыть/сох­ранить файл LOG), Statistics (просмотр статис­тики), Add‑Ins (вы­бор и запуск дополнительных прог­рамм), Options (пара­метры настройки), Cove­rage/Profile Mode (отобра­жение данных в режиме про­смотра/выполне­ния), Pre­view/Zoom Mode (отоб­ра­жение окна как одного це­лого/в виде двух частей). Ст­­ро­ка Log‑файла имеет по­ля (разделенные запя­ты­ми): вре­­­мя выпол­нения ко­да ст­роки; имя класса; объ­ект, ме­тод или программа; но­мер строки; имя файла; уровень вложенности вы­зы­ваемой программы.

USB Debugging क्या है? USB debugging कैसे काम करता है? USB Debugging Enable कैसे करें?

Рисунок 2.17.2. Окно установки точек прерывания

Источник: studopedia.su

Блог GunSmoker-а

. when altering one’s mind becomes as easy as programming a computer, what does it mean to be human.

19 апреля 2009 г.

Настройки проектов в Delphi с точки зрения поиска ошибок

Сегодня я хочу рассмотреть различные настройки проектов Delphi, которые могут влиять на отладку приложений.

О чём идёт речь

Сначала, давайте посмотрим на них: открываем Project/Options. Нас будут интересовать вкладки Compiling и Linking (в старых версиях Delphi они назывались Compiler и Linker):

Вкладка Compiling

Вкладка Compiling в D2009

Вкладка Linking

Вкладка Linking в D2009

На вкладке «Compiler» нас будут интересовать опции «Stack Frames», группа «Debug information», «Local Symbols» и «Symbol reference info», «I/O Checking», «Overflow checking» и «Range checking». На «Linking» — «Map file», «Debug Information» (известная в предыдущих версиях Delphi как «Include TD32 debug info») и «Include remote debug symbols».

Давайте посмотрим, за что отвечают эти опции. А затем — как их лучше бы всего расставить. При этом мы будем рассматривать такие ситуации: обычное приложение и приложение с механизмом диагностики исключений.
Кроме того, настройки проекта могут отличаться, компилируете ли вы приложение для себя или для распространения. В новых версиях Delphi появились профили настроек (Debug и Release, соответственно). Вы можете задать свой набор настроек в каждом профиле, а затем переключаться между ними. В старых Delphi есть только один профиль настроек и вам нужно менять каждую настройку вручную.

Напомним, что при смене любой из опций необходимо сделать полный Build проекту (а не просто Compile).

Что означают эти опции?

Самыми важными настройками являются группа опций «Debug information», «Local Symbols» и «Symbol reference info».

Программа представляет собой набор машинных команд. Текст программы представляет собой текстовый файл. Вопрос: как отладчик узнаёт, когда надо остановиться, если вы поставили бряк на строку в тексте? Где же соответствие между текстовым файлом и набором байт в exe-файле? Вот для такой связи и служит отладочная информация.

Это, грубо говоря, набор инструкций типа: «машинные коды с 1056 по 1059 относятся к строке 234 модуля Unit1.pas». Вот с помощью такой информации и работает отладчик. Указанные выше опции отвечают за генерацию отладочной информации для ваших модулей.

Отладочная информация сохраняется вместе с кодом модуля в dcu-файле. Т.е. один и тот же Unit1.pas может быть скомпилирован как с отладочной информацией, так и без неё — в разные dcu файлы. Отладочная информация увеличивает время компиляции, размер dcu-файлов, но не влияет на размер и скорость работы полученного exe-файла (т.е. отладочная информация не подключается к exe-файлу) (*).

Бывают ситуации, когда наличие отладочной информации в файле или (хотя бы) рядом с файлом является необходимым. Например, если вы выполняете удалённую отладку или отладку внешнего процесса. Или если вам нужен читаемый стек вызовов в вашем средстве диагностики исключений.

Подключение отладочной информации к приложению осуществляется несколькими способами: либо это опции проекта (а именно: «Map File», «Debug information» (Linker)/«Include TD32 Debug info» или «Include remote debug symbols»), либо это возможности всевозможных экспертов (типа EurekaLog, JCL или madExcept), которые добавляют отладочную информацию в программу в своём формате.

  • «Debug information» (директива или ) – это собственно и есть отладочная информация. Т.е. соответствие между текстом программы и её машинным кодом. Вы должны включить эту опцию, если хотите ставить бряки, выполнять пошаговую отладку, а также иметь стек с именами для своего кода. Часто эту опцию включают автоматически различные эксперты типа EurekaLog.
  • «Local symbols» (директива или ) – является дополнением к отладочной информации. Она отвечает за соответствие между данными в exe-файле и именами переменных. Если вы включаете эту опцию, то отладчик позволит вам просматривать и изменять переменные. Также окно «Call Stack» будет способно отражать переданные в процедуры параметры.
  • «Reference info» – это дополнительная информация для редактора кода, которая позволяет ему отображать более подробную информацию об идентификаторах. Например, где была объявлена переменная.
  • «Use Debug DCUs» — эта опция переключает сборку вашей программы с отладочными модулями Delphi или с обычными. Если вы внимательно посмотрите на установку Delphi, то увидите, что pas файлы из папки Source никогда не используются для компиляции — а только для отладки. Для компиляции же используются уже готовые dcu-файлы из папки Lib. Это уменьшает время компиляции. Поскольку dcu могут быть скомпилированы с отладочной информацией и без неё, то в папке Lib есть два набора dcu-файлов: обычные и отладочные. Переключая эту опцию, вы указываете, какие из них использовать. Если вы выключите эту опцию, то не сможете заходить по F7 в стандартные функции и методы Delphi (т.к. для них будет отсутствовать отладочная информация). Также при выключенной опции вы не будете видеть информацию о стандартном коде в стеке вызовов.
  • «Stack Frames» — эта опция отвечает за генерацию стековых фреймов. Если опция выключена, то стековый фрейм не генерируется без необходимости. Если она включена -то фрейм генерируется всегда. Стековые фреймы используются при построении стека вызовов по фреймам (построение методом raw-сканирование не нуждается в стековых фреймах). В обычном приложении стековые фреймы генерируются практически всегда (**).
  • «Range checking» — служит помощником в поиске проблем при работе, например, с массивами. Если её включить, то для любого кода, который работает с массивами и строками, компилятор добавляет проверочный код, который следит за правильностью индексов. Если при проверке обнаруживается, что вы вылезаете за границы массива, то будет сгенерировано исключение класса ERangeError. При этом вы можете идентифицировать ошибку обычной отладкой. Если же опция выключена, то никакого дополнительного кода в программу не добавляется. Включение опции немного увеличивает размер программы и замедляет её выполнение. Рекомендуется включать эту опцию только в отладочной версии программы.
  • «Overflow checking» — похожа на опцию «Range checking», только проверочный код добавляется для всех арифметических целочисленных операций. Если результат выполнения такой операции выходит за размерность (происходит переполнение результата), то возбуждается исключение класса EIntOverflow. Пример – к байтовой переменной, равной 255, прибавляется 2. Должно получиться 257, но это число больше того, что помещается в байте, поэтому реальный результат будет равен 1. Это и есть переполнение. Эта опция используется редко по трём причинам. Во-первых, самый разный код может рассчитывать на то, что эта опция выключена (часто это различного рода криптографические операции, подсчёт контрольной суммы и т.п., но не только). В связи с этим при включении этой опции могут начаться совершенно различные проблемы. Во-вторых, в обычных ситуациях работают с четырёхбайтовыми знаковыми величинами, и работа около границ диапазонов представления происходит редко. В-третьих, арифметические операции с целыми – достаточно частый код (в отличие от операций с массивами), и добавление дополнительной работы на каждую операцию иногда может быть заметно (в смысле производительности).
  • «I/O Checking» — эта опция используется только при работе с файлами в стиле Паскаля, которые считаются устаревшими. По-хорошему, вы не должны использовать их и, соответственно, эту опцию.
  • «Map file» — включение опции заставляет линкёр Delphi создавать вместе с проектом map-файл. Различные установки опции отвечают за уровень детализации и обычно имеет смысл ставить только Off или Detailed. Map файл обычно используется всевозможными утилитами типа EurekaLog, JCL или madExcept в качестве первичного источника для создания отладочной информации в своём формате. Поэтому руками устанавливать эту опцию вам придётся крайне редко — эксперты включают её самостоятельно по необходимости.
  • «Debug Information» (Linker)/«Include TD32 debug info» — внедряет в приложение отладочную информацию для внешнего отладчика в формате TD32. Обычно эта опция включается, если вы отлаживаете проект через Attach to process и Delphi не может найти отладочную информацию. При включении этой опции размер самого приложения увеличивается в 5-10 раз (при условии, что опция «Place debug information in separate TDS file» выключена). Поэтому, если вам нужна отладочная информация в распространяемом приложении — лучше рассмотреть другие варианты (лучше всего подходит отладочная информация в специализированных форматах — EurekaLog, JCL, madExcept).
  • «Include remote debug symbols» — заставляет линкёр создать rsm-файл вместе с проектом, в который записывается информация для удалённого отладчика Delphi. Вам нужно включать эту опцию, если вы хотите выполнить удалённую отладку. Полученный rsm-файлик нужно копировать вместе с приложением на удалённую машину.
Читайте также:
Uploader что это за программа

Хочу заметить, что помимо опций Delphi, в самих экспертах/инструментах также могут быть настройки, влияющие на детальность отладочной информации. Например, обзор таких настроек для EurekaLog мы уже делали в этой статье.

Обычное приложение без механизма диагностики исключений

Общие настройки для любых профилей

Все опции отладки («Debug information» (Compiler), «Local symbols», «Reference info») вообще на готовый модуль не влияют, т.к. отладочная информация в exe/DLL не хранится, ну и нам жить не мешают => поэтому смысла их выключать я не вижу («Use Debug DCUs» — устанавливайте по вкусу, смотря по тому, хотите вы отлаживаться в стандартных модулях или нет).

«Stack Frames» вообще включать незачем.

Генерацию map-файла выключаем.

Профиль Debug

Включаем «Range checking» и (по вкусу) «Overflow checking».

«Include TD32 debug info» — включаем только для отладки внешнего процесса.

Соответственно, «Include remote debug info» — включаем только для удалённой отладки.

Профиль Release

Выключаем «Range checking», «Overflow checking», «Include TD32 debug info» и «Include remote debug info».

Приложение с механизмом диагностики исключений (типа EurekaLog, JCL или madExcept)

Общие настройки любых профилей

Все опции отладки («Debug information» (Compiler), «Local symbols», «Reference info») держать включёнными, т.к. в противном случае не будет доступна отладочная информация. Соответственно, ваши информационные механизмы пойдут лесом.

«Stack Frames» — вообще вЫключать незачем.

Генерацию map-файла включаем, если об этом не позаботился эксперт (маловероятно).

Профиль Debug

«Use Debug DCUs» — по вкусу.
Включаем «Range checking» и (по вкусу) «Overflow checking».

«Include TD32 debug info» — включаем только для отладки внешнего процесса.

«Include remote debug info» — включаем только для удалённой отладки.

Профиль Release

Включаем «Use Debug DCUs».

Выключаем «Range checking», «Overflow checking», «Include TD32 debug info» и «Include remote debug info».

Примечание: если вы используете мало операций с индексами в своей программе (так что дополнительные проверки не замедлят её), то будет хорошей идеей всегда держать опцию «Range checking» включённой.

Debugging tips from Delphi 2009 Live!

Фото с Delphi 2009 Live!

Что может пойти не так, если настройки будут заданы неверно?

Ну, во-первых, это невозможность отладки (например, отсутствие информации для удалённого отладчика или выключенная опция «Debug information» (Compiler)), большой размер приложения (например, случайно забыли выключить «Debug information» (Linker)/«Include TD32 debug info»), медленная работа (например, компиляция с отладочным кодом), отсутствие или неполный стек вызовов в средствах диагностики исключений (например, выключили «Debug information» (Compiler)). В очень редких и запущенных случаях переключение опций может сказаться на работоспособности программы (например, установка Stack frames может снизить максимально возможную глубину рекурсии). Ну и недочёты по мелочи.

Кстати, если вы разрабатываете компоненты, то надо учитывать, что у Delphi есть именно два набора DCU-файлов, которые отличаются настройками компиляции. Вообще говоря, простое переключение опций, ответственных за генерацию отладочной информации, никак не влияет на интерфейс и реализацию модуля. Но в общем случае код может использовать условные директивы. Поэтому может быть ситуация, когда два набора DCU файлов (скомпилированных с разными опциями) не совместимы друг с другом — потому что они использовали какую-либо директиву и содержат разный код (а вот и пример).
Поэтому вам тоже надо иметь два набора DCU-файлов: один — скомпилированный с опцией «Use Debug DCUs», другой — без. Причём, не важно включена или выключена опция «Debug information» (Compiler) в ваших настройках в обоих случаях.

Примечания:
(*) Слова «отладочная информация увеличивает время компиляции, размер dcu-файлов, но не влияет на размер и скорость работы полученного exe-файла» некоторые понимают неправильно. В частности, многие замечают, что если переключить профиль приложения с Debug на Release (или наоборот), то размер приложения изменится (незначительно или же намного — зависит от настроек проекта и его исходного кода). Позвольте, но ведь я говорю об отладочной информации в чистом виде (мы говорим про опции «Debug Information», «Local Symbols» и т.п. с вкладки «Compiling»), а вы меняете профиль компиляции целиком. Это не только смена опций отладочной информации (которые, кстати, могут даже вообще не меняться при смене профиля), а также и множество других настроек.

Читайте также:
ЭкспеРиментальная программа что это

Например, в вашем коде может быть тьма конструкций вида какой-то код . Разумеется, когда вы собираете программу в Release, этот код в программу не попадёт, а когда вы собираете его в Debug, то — попадёт. Потому что по умолчанию профиль Debug содержит символ условной компиляции «DEBUG». В результате размер .exe действительно получится разный. Но повлияла ли на этот размер отладочная информация? Неа.

Фактически, вы собрали в разных профилях разных код — неудивительно, что он разный по размеру.

Более того, вы можете удалить из конфигурации Debug символ условной компиляции «DEBUG» — и тогда вы будете собирать один и тот же код в обоих профилях. Ну, по крайней мере, свой код. Сторонний, уже собранный код, конечно же, никак не будет затронут. Например, код RTL/VCL уже скомпилирован с фиксированными настройками и не меняется при пересборке проекта.

Вон там чуть выше я упомянул, что в некоторых версиях Delphi отладочный и релизный варианты кода RTL/VCL незначительно отличаются — опять же, благодаря условной компиляции. Но никак не отладочной информации.

Кроме того, к иному коду приводит и включение/выключение опций вида Optimization, Stack Frames, Range Check Errors и др. Действительно, оптимизация может удалять код (оптимизировать ненужный) или увеличивать (вставлять inline вместо вызова), Stack Frames очевидно добавляет код (код установки фрейма), равно как и Range Check Errors (код проверки диапазонов).

В результате, вы меняете профиль — вы меняете и код (при условии, что разные профили имеют разные настройки вышеупомянутых опций — что так и есть по умолчанию). Меняете код — меняете и размер. Имеет ли хоть какое-то отношение к этому изменению размера отладочная информация? Нет.

Далее, другой пример. Несмотря на то, что по умолчанию отладочная информация в .exe файл не попадает — никто же не запрещает её вам туда добавить самому! Например, если вы будете использовать трейсер исключений, то он самостоятельно добавит в .exe часть отладочной информации, которая нужна ему для построения читабельных стеков вызовов.

Также о внедрении отладочной информации можно попросить и среду. Например, вы можете включить «Include TD32 Debug Info» (эта опция называется «Debug Information» на вкладке «Linking» в последних версиях Delphi) и выключить опцию «Place debug information in separate TDS file». Тогда вся отладочная информация из .dcu файлов будет собрана в один большой файл и этот файл будет внедрён в .exe. Тогда да, отладочная информация повлияет на размер файла, но это происходит не из-за её свойств, а потому что мы явно попросили такое поведение: «добавьте отладочную инфу в мою программу».

Кстати говоря, в последних версиях Delphi здорово поменяли настройки профилей компиляции. Если раньше Release и Debug мало чем отличались, то теперь отличия существенны. Профиль Debug выключает Optimization, но включает Stack Frames (а профиль Release — делает наоборот). Профиль Debug включает отладочную информацию, а Release — отключает. Но оба профиля включают Assert-ы.

Также оба профиля включают I/O checks, но выключают overflow и range. В настройках компоновщика (linking) профиль Debug включает TD32 («Debug information») и Remote debug symbols (не для всех платформ). Release, соответственно, выключает эти же опции. И оба профиля не включают Map file и отдельный файл для TD32.

procedure TForm1.Button1Click(Sender: TObject); procedure A; procedure B; begin // синяя точка слева от «begin» => // эта функция имеет стековый фрейм ShowMessage(IntToStr(Integer(nil^))); end; begin // нет синей точки слева от «begin» => // это очень короткая процедура, поэтому // стековый фрейм не нужен => // он не создаётся. B; end; begin // нет синей точки слева от «begin» => // это очень короткая процедура, поэтому // стековый фрейм не нужен => // он не создаётся.

A; end;

Button1Click состоит всего из двух инструкций: «call A; ret;». Она очень короткая и не использует аргументы или локальные переменные. Поэтому, очевидно, что ей не нужен стековый фрейм. Когда опция «Stack frames» выключена, то для Button1Click стековый фрейм не создаётся (но он создаётся, если опция «Stack frames» будет включена).

Но, для более сложных процедур стековые фреймы будут генерироваться вне зависимости от установки опции «Stack frames».

Например, тоже очень короткая процедура B всегда имеет фрейм. Причина: использование типа String в ShowMessage. Компилятору нужно вставить неявную строковую переменную и неявный try/finally для её освобождения, поэтому процедуре нужен фрейм.

В реальных приложениях фреймы генерируются для 99% процедур. Подробнее: Фреймы на стеке.

Источник: www.gunsmoker.ru

Как использовать отладчик в VS Code

VS (или Virtual Studio) Code — это бесплатный редактор кода, поддерживающий все основные языки программирования. Это позволяет программистам быстро и легко просматривать код и редактировать его при необходимости. Он работает как IDE для людей, пишущих код. но это не предотвращает ошибки. К счастью, в VSCode встроен отличный инструмент отладки.

В этой статье мы покажем Как использовать отладчик в коде VS.

Что такое отладчик?

Когда вы программируете, будут моменты, когда написанный вами код столкнется с некоторыми проблемами. Эти проблемы могут быть не по вине кодера, а просто появляются из-за того, что что-то выходит из строя само по себе. Эти “ошибки” может привести к тому, что программы перестанут работать. По этой причине кодировщикам важно находить и устранять их.

Отладчик – это программа, которая находит ошибки и либо исправляет их автоматически, либо предлагает способы сделать это. VSCode имеет встроенный отладчик, но существует множество различных способов его использования. Вот несколько способов использования отладчика в VS Code.

Отладчик поддерживает JavaScript, TypeScript и все другие языки, использующие компиляторы Java. Для других языков, таких как Python или Ruby, потребуются установленные расширения.

Для этого выполните следующие действия:

  1. В верхнем меню выберите “Установить дополнительные отладчики”
  2. Выберите, какие языки программирования вы хотите использовать.
  3. Язык будет загружен и введен в вашу базу данных. Теперь вы можете запустить отладчик, используя нужный язык.

Далее мы рассмотрим, как использовать отладчик в VSCode.

Создание базы данных Node.js

Node.js — это платформа, на которой по умолчанию работает отладчик VSCode. Он нужен вам для отслеживания всего, что происходит с вашим кодом. Это облегчает выявление проблемы. Кроме того, в отладчике VSCode есть некоторые функции, которые работают только с JavaScript. Вам нужно будет создать простую программу, знаменитую программу “Hello, World” программа.

После выполнения этого шага отладчик будет работать плавно и быстро.

Чтобы создать Node.js, выполните следующие действия:

  1. Перед тем как начать, убедитесь, что Node.js загружен и установлен на вашем компьютере.
  2. Чтобы узнать, установлен ли Node.js, создайте новый терминал и введите “узел—версия” в терминале. Должна появиться установленная вами версия Node.js.
  3. Создайте пустую папку на рабочем столе и назовите ее “hello”
  4. Откройте VSCode и в командной строке введите следующий код:
    mkdir hello
    cd hello
    code.
  5. Найдите панель инструментов Проводника. Ваш файл должен отображаться под названием “Hello” Щелкните значок “Новый файл” справа от имени файла.
  6. Назовите новый файл “app.js”
  7. В консольной команде введите следующий код:
    var msg = ‘Hello World’;
    console.log(msg);
  8. Сохраните файл, нажав “Ctrl +S” на клавиатуре.
  9. В терминале введите node app.js . В выводе будет указано «Привет, мир». вы написали свою первую программу и теперь готовы запустить отладчик VSCode.
Читайте также:
Что за программа октагон

Run View

Отсюда вы сможете использовать все функции отладки VSCode. При первом запуске вам необходимо ознакомиться со всей информацией, которую имеет для вас отладчик. Он также включает в себя панель задач, на которой можно настраивать параметры и команды отладки. Чтобы получить доступ к Run View, выполните следующие действия:

  1. На боковой панели VSCode выберите «Выполнить». значок. Вы также можете быстро получить к нему доступ, нажав “Ctrl+Shift+D” на клавиатуре.
  2. Появится меню с тремя вариантами. Для целей данного руководства выберите “создать файл launch.js” option.

Создание программы Launch.js

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

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

Вот как это сделать :

  1. В “Просмотре выполнения” меню выберите “создать файл launch.js”
  2. VSCode автоматически выберет среду отладки, но если он ничего не обнаружит, выберите «Node.js». >
  3. Вернитесь в Проводник, нажав “Ctrl+Shift+E.”
  4. Проверьте папку “hello” Должна быть вкладка с названием “.vscode” и файл launch.json должен быть на этой вкладке.
  5. Чтобы проверить атрибуты отладчика, нажмите “Ctrl+Space”.

Запуск отладчика

Теперь все подготовка завершена, мы можем начать наш сеанс отладки. Чтобы запустить отладчик, нам сначала нужно выбрать конфигурацию запуска.

  1. В представлении «Выполнение» VSCode найдите раскрывающийся список «Конфигурация». «> Выберите «Запустить программу». Выбрав его, нажмите F5, чтобы запустить отладчик.
  2. Вы также можете получить доступ к меню отладчика, сначала открыв палитру команд, нажав “Ctrl+Shift+P”

  3. Введите “.debug” и выберите конфигурацию.

Добавление новой конфигурации

В случае особенно сложных ошибок есть вероятность, что база данных, которая у вас есть в VSCode, не имеет нужной вам конфигурации. К счастью, в отладчик можно добавить новые конфигурации.

  1. В разделе “Выполнить” выберите “Добавить конфигурацию”
  2. Откройте IntelliSense (Shift+Пробел), чтобы вызвать меню, затем выберите “Добавить конфигурацию”

В массиве конфигурации IntelliSense выберите добавление другой конфигурации.

Конфигурации запуска и подключения

VSCode имеет два режима отладка – «запустить» и «прикрепить». У каждого режима есть свои плюсы и минусы, и каждый подходит для определенного типа кодировщика. Вот краткое описание методологии для каждого режима.

Во-первых, давайте обсудим “запуск” конфигурации. Конфигурации запуска означают, что вы, программист, пишете код или “рецепт” для сеанса отладки.

“Прикрепить” конфигурации, с другой стороны, предполагают присоединение конфигурации извне VSCode во время работы программы в VSCode. Вы не создаете ничего с нуля, а используете для отладки ранее созданный код.

Автоприсоединение

Автоприсоединение — это функция, которая автоматически прикрепляет отладчик Node к определенным файлам Node.js. процессов в терминале VSCode. Чтобы включить автоматическое вложение, выполните следующие действия:

  1. Для доступа к палитре команд нажмите “Ctrl+Shift+P” на клавиатуре.
  2. Когда появится меню, выберите “ Переключить автоматическое присоединение». Панель автоматического прикрепления должна появиться вверху.
  3. После включения при автоматическом подключении вам потребуется перезагрузить устройство.
  4. Вы также можете создать новый терминал, и автоматическое подключение будет по-прежнему включено.

Автоматическое подключение доступно в трех различных режимах на выбор. Каждый из них имеет свою функцию, поэтому убедитесь, что выбрали правильный. Вот три режима:

  • “Smart” – Это опция по умолчанию. Когда вы выполняете скрипт, которого нет в вашем “node_modules” папку, сценарий будет автоматически отлажен.
  • «Всегда» – Любой процесс, использующий Node.js и запущенный во встроенном терминале, будет отлажен.
  • “OnlyWithFlag” – Этот параметр будет отлаживать только те процессы, которые помечены флагом “- -inspect” или “- -inspect-brk” флаги на них.

Присоединить к процессу узла

Вы также можете подключить отладчик Node.js к процессам вручную. Это требует немного больше работы, но сэкономит ваше время, если вы точно знаете, какой процесс вызывает проблемы. Чтобы подключить отладчик к процессу Node.js, выполните следующие действия:

  1. Откройте палитру команд, нажав “Ctrl+Shift+P” на клавиатуре.
  2. Выберите “Присоединить к процессу узла” из меню.
  3. Здесь вы увидите все процессы, которые можно отлаживать с помощью Отладчик Node.js. Выберите, к какому процессу вы хотите подключить отладчик.

Терминал отладки JavaScript

Добавление терминала отладки JavaScript — это быстро и безболезненно, и это отличный вариант, если вы хотите выполнить широкое или общее исправление ошибок. Во-первых, вам нужно создать терминал.

  1. Откройте палитру команд, нажав “Ctrl+Shift+P” на клавиатуре.
  2. Выберите “Отладка: Создать терминал отладки JavaScript из меню.
  3. Вы также можете получить доступ к этому параметру, выбрав его в раскрывающемся меню терминала.
  4. Отладчик подключится к вашему текущему процессу. Он будет запускаться автоматически и исправлять обнаруженные ошибки в коде.

Настройка “Attach” Конфигурация

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

  1. Простой “прикрепить” Конфигурация обычно выглядит следующим образом:
    “name”: “Attach to Process”,
    “type”: “node”,
    “request”: “прикрепить”,
    “порт”: 9229
  2. 9229 — номер порта по умолчанию для “- -inspect” и “- – осмотр-brk” опции. Чтобы изменить номер порта, введите следующее: “- – inspect =95430”

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

Чтобы подключить отладчик к процессу, которого в данный момент нет в отладчике, выполните следующие действия:

  1. Вам нужно будет указать, какой процесс, введя идентификатор в строку кода, которая выглядит следующим образом:
    “name”: “Attach to Process”,
    “type” : “узел”,
    “запрос”: “прикрепить”,
    “processId”: “53426”
    >
  2. Вручную вводить ID каждого процесса довольно утомительно. К счастью, вы можете открыть весь список, введя “$” в “processId” часть строки.

Многоцелевая отладка

Будут времена, когда возникнут проблемы с кодированием, и ваш код пронизан ошибками, и ничего не работает. Многоцелевой поиск ошибок поддерживается VSCode и позволяет запускать несколько отладчиков в нескольких процессах. Чтобы начать многоцелевую отладку, все, что вам нужно сделать, это запустить еще один сеанс отладки, не закрывая первый.

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

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

Прекратить отладку

Вы наконец добрались до конца, и все эти надоедливые ошибки были устранены. Теперь вы должны завершить операцию отладки. Это важно сделать, чтобы ваша работа была сохранена.

“Прикрепить” Конфигурации

  1. Выберите “Отладка: Остановить” на панели инструментов отладки или после открытия палитры команд нажатием “Ctrl+Shift+P.”
  2. После нажатия кнопки “Стоп” отладчик Node.js отключится и завершит работу. Однако введенный вами процесс все равно будет запущен.
  3. Чтобы остановить запущенные процессы, перейдите на панель задач и выберите “Остановить”

“Запустить” Конфигурации

  1. После выбора “Стоп” VSCode попросит вас завершить работу, отправив сигнал SIGINT.
  2. Перед перехватом сигнала очистите все, а затем завершите работу.
  3. Если если в этом коде выключения нет точек останова (или проблем), сеанс завершится.

Дебаггеры раскрыты

Инструмент отладчика в VSCode очень удобен, чтобы иметь его под рукой. утилизация. Однако существует много вариантов, и может быть трудно решить, какой метод вы хотите использовать. Мы перечислили методы для начинающих и продвинутых пользователей для использования отладчика, поэтому у вас есть возможность выполнять отладку по своему усмотрению.

Используете ли вы отладчик VSCode? Какой метод вы считаете лучшим? Дайте нам знать в разделе комментариев ниже.

Источник: gmodz.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru