Отладчик
Отладчик является встроенным в конфигуратор инструментом. Он помогает отлаживать программные модули, создаваемые в процессе разработки прикладного решения. Отладчик позволяет отслеживать последовательность выполнения операторов встроенного языка и просматривать значения переменных.
Основные возможности отладки
- отладка приложений, исполняемых на удаленных компьютерах, доступных по протоколу TCP/IP или HTTP,
- отладка кода, исполняемого рабочим процессом кластера серверов 1С:Предприятия 8; при этом поддерживается сквозной стек вызовов для клиента и сервера, и сквозная пошаговая отладка клиента и сервера;
- отладка кода, исполняемого в таких видах соединений как внешнее соединение, фоновое задание и WS-соединение?
- отладка мобильных приложений.
Точки останова
Отладчик позволяет установить на конкретную строку модуля специальный маркер — точку останова, — при достижении которой исполнение программного модуля останавливается и управление передается отладчику. Точки останова могут быть безусловными или с параметрами. При достижении безусловной точки останова исполнение программного модуля останавливается в любом случае:
- Условия останова по имени метода, расположенного выше по стеку при вызове текущей процедуры (имя метода может быть задано регулярным выражением). Это позволит, например, останавливаться в функции или процедуре только когда она вызвана из конкретного метода.
- Условие останова по количеству попаданий в строку, в которой установлена точка останова, прежде чем она сработает. Это поможет, в частности, при отладке циклов, когда останов необходим только при заданном проходе цикла.
Отладчик поддерживает возможность отключения точек останова. При этом строка модуля остается отмечена маркером, однако на ход исполнения модуля он никакого влияния не оказывает:
При большом количестве точек останова удобно использовать отдельное окно для работы с точками останова, позволяющее просматривать и редактировать их в едином списке:
Пошаговое выполнение
После того, как при достижении точки останова управление прикладным решением передано отладчику, существует возможность дальнейшего исполнения модуля в нескольких режимах: пошаговое выполнения, исполнение вызова функции или процедуры, прерывание пошагового исполнения функции или процедуры, выполнения модуля до той строки, на которой стоит курсор или продолжение свободного выполнения модуля:
Просмотр выражений
Во время пошагового выполнения существует возможность просматривать значения переменных, содержащихся в модуле, и рассчитывать произвольные значения. Для этого используется специальное окно, отображающее результат расчета:
Для объектов встроенного языка значения их свойств представляются в виде древовидной структуры. Для значений, являющихся строками, массивами и коллекциями значений также возможен просмотр в отдельном окне:
Текущее значение переменной также можно просмотреть, подведя указатель мыши к этой переменной. Текущее значение будет показано в виде короткой подсказки рядом с переменной.
Табло и локальные переменные
Результаты вычислений, которые требуется просматривать на протяжении выполнения некоторой части модуля, можно вывести в отдельное окно — табло, — в котором есть возможность распределить все просматриваемые выражения по четырем страницам:
Для удобного просмотра и изменения локальных переменных, что представляется наиболее частой задачей, существует команда Локальные переменные. Она открывает табло, которое уже автоматически заполнено всеми локальными переменными.
Изменение значений переменных
Значения примитивных типов можно изменить прямо в ячейке Значение.
В этом окне полностью функционирует контекстная подсказка.
Стек вызовов
Отладчик позволяет использовать стек вызовов, который показывает последовательность вызовов процедур и функций, приведшую к строке модуля, которая отлаживается в данный момент:
Двойным щелчком мыши на имени процедуры в стеке вызова можно перейти в соответствующую строку процедуры.
Остановка по ошибке
В платформе предусмотрена возможность использовать режим Остановка по ошибке. В этом режиме отладка может быть остановлена либо при каждой возникающей ошибке, либо при ошибке, в тексте которой присутствует подстрока, указанная разработчиком. Подстроки интересующих ошибок указываются в настройках отладки.
Во время отладки при такой настройке отладка будет останавливаться только при возникновении ошибок, связанных с делением на ноль.
Краткое руководство. Отладка кода C++ с помощью отладчика Visual Studio
Отладчик Visual Studio реализует множество эффективных функций для отладки приложений. В этой статье вы ознакомитесь с некоторыми основными возможностями.
Создание нового проекта
- Откройте Visual Studio и создайте проект. Нажмите клавишу ESC, чтобы закрыть окно запуска. Нажмите CTRL+Q, чтобы открыть поле поиска, введите c++, выберите Шаблоны и затем Create new Console App project (Создание проекта консольного приложения). В появившемся диалоговом окне выберите Создать. Если шаблон проекта Консольное приложение Windows отсутствует, перейдите в меню Инструменты>Получить инструменты и компоненты. , после чего запустится Visual Studio Installer. Запускается Visual Studio Installer. Выберите рабочую нагрузку Разработка классических приложений на C++, а затем нажмите Изменить. Visual Studio создаст проект.
- В файле MyDbgApp.cpp замените следующий код
int main()
следующим кодом (не удаляйте #include «stdafx.h» ):
#include #include using namespace std; void doWork() < list c1; c1.push_back(10); c1.push_back(20); const list c2 = c1; const int &i = c2.front(); const int &j = c2.front(); cout int main()
Установка точки останова
Точка останова указывает, где Visual Studio следует приостановить выполнение кода, чтобы вы могли проверить значения переменных или поведение памяти, либо выполнение ветви кода. Эта возможность чаще всего используется при отладке.
- Чтобы задать точку останова, щелкните в области слева от вызова функции doWork (или выберите строку кода и нажмите клавишу F9).
- Нажмите клавишу F5 (или выберите Отладка > Начать отладку). Отладчик приостановит выполнение в заданной точке останова. Инструкция, в которой отладчик приостановил выполнение приложения, обозначается желтой стрелкой. Строка, содержащая вызов функции doWork , пока еще не выполнена.
Совет При наличии точки останова в цикле или рекурсии либо большого числа точек останова, которые вы часто будете просматривать пошагово, используйте условную точку останова, которая позволяет приостанавливать код только при выполнении определенных условий. Использование условных точек останова позволяет сэкономить время и упростить отладку проблем, которые сложно воспроизвести.
Навигация по коду
Чтобы продолжить работу отладчика, можно использовать различные команды. Здесь описываются полезные новые команды для навигации по коду, доступные с версии Visual Studio 2017.
При приостановке в точке останова наведите указатель мыши на инструкцию c1.push_back(20) , пока не появится зеленая кнопка"Запустить", а затем нажмите кнопку "Выполнить", чтобы нажать кнопку.
Выполнение приложения продолжится путем вызова doWork и будет приостановлено в той строке, в которой вы нажмете эту кнопку.
В процессе пошагового выполнения кода обычно используются клавиши F10 и F11. Более подробные инструкции см. в статье Знакомство с отладчиком Visual Studio.
Проверка переменных в подсказке по данным
- В текущей строке кода, отмеченной желтым указателем выполнения, наведите указатель мыши на объект c1 , чтобы просмотреть подсказку по данным. Подсказка по данным содержит текущее значение переменной c1 и позволяет проверить ее свойства. Если во время отладки отображается значение, которое вы не ожидали увидеть, возможно, в предыдущей или вызывающей строке кода имеется ошибка.
- Разверните подсказку по данным, чтобы просмотреть текущие значения свойств объекта c1 .
- Чтобы закрепить подсказку по данным и иметь возможность постоянно просматривать значение переменной c1 во время выполнения, щелкните небольшой значок булавки. (При необходимости вы можете переместить закрепленную подсказку по данным в удобное положение.)
Изменение кода и продолжение отладки
Вы можете сделать это во время сеанса отладки, если вам потребуется внести изменения в код.
- Щелкните второй экземпляр c2.front() и измените c2.front() на c2.back() .
- Нажмите клавишу F10 (или выберите команду Отладка > Шаг с обходом) несколько раз, чтобы пройти вперед и выполнить измененный код. При нажатии клавиши F10 отладчик каждый раз переходит вперед на одну инструкцию, однако при этом минует функции, не заходя в них (пропускаемый код в таком случае по-прежнему выполняется).
Дополнительные сведения об этом режиме и его ограничениях см. в статье Изменить и продолжить.
Следующие шаги
В этом руководстве вы узнали, как запускать отладчик, осуществлять пошаговое выполнение кода и проверять переменные. Возможно, вы захотите получить более полное представление о функциях отладчика, а также воспользоваться ссылками на дополнительные сведения.
Отладка кода
В C#, как и в других появившихся до .NET языках, главная методика по отладке состоит в добавлении точек останова и изучении того, что происходит в коде в конкретные моменты во время его выполнения.
Точки останова
Точку останова (breakpoint) в Visual Studio можно помещать на любую строку кода, которая в действительности выполняется. Самый простой способ — щелчок на необходимой строке в окне редактора кода внутри затененной области вдоль левого края окна документа (или выделение нужной строки и нажатие клавиши ). Это приводит к размещению в данной строке точки останова, которая вызывает прерывание процесса выполнения и передачу управления отладчику. Как и в предыдущих версиях Visual Studio, точка останова обозначается большим кружком слева от соответствующей строки в окне редактора кода. Кроме того, Visual Studio выделяет саму строку, отображая ее текст и фон разными цветами. Щелчок на кружке приводит к удалению точки останова.
Если останов на определенной строке каждый раз не подходит для решения имеющейся проблемы, можно создать так называемую условную точку останова. Для этого выберите в меню Debug (Отладка) пункт Windows --- Breakpoints (Окнo --- Точки останова). Откроется диалоговое окно, позволяющее указать желаемые детали для точки останова. В этом окне можно выполнять следующие действия:
- Указать, что выполнение должно прерываться лишь после прохождения точки останова определенное количество раз.
- Указать, что точка останова должна вступать в действие при каждом n-ном достижении строки, например, при каждом 20-м ее выполнении (это удобно при отладке больших циклов).
- Задать точки останова относительно переменных, а не команд. В таком случае наблюдение будет вестись за значением указанной переменной, и точки останова будут активизироваться при каждом изменении значения этой переменной. Однако этот вариант может сильно замедлить выполнение кода, поскольку на проверку, не изменилось ли значение отслеживаемой переменной после выполнения каждой очередной инструкции, будет тратиться дополнительное время процессора.
Слежения
После срабатывания точки останова обычно необходимо просмотреть значения переменных. Проще всего это сделать, наведя курсор мыши на имя интересующей переменной прямо в окне редактора кода. Это приводит к появлению небольшого всплывающего окошка, в котором показано значение данной переменной; это окошко можно развернуть, чтобы просмотреть дополнительные детали.
Для просмотра значений переменных можно также использовать окно Autos (Автоматические). Окно Autos представляет собой окно с вкладками, которое появляется лишь тогда, когда программа выполняется в режиме отладки. Если вы его не видите, попробуйте выбрать в меню Debug (Отладка) пункт Windows --- Autos (Окна --- Автоматические).
В этом окне рядом с переменными, которые являются классами или структурами, отображается пиктограмма с изображением знака "плюс", щелчок на которой позволяет развернуть представление переменной и просмотреть значения ее полей.
Три предлагаемых в этом окне вкладки предназначены для наблюдения за переменными трех разных категорий:
- Вкладка Autos (Автоматические) позволяет просматривать значения нескольких последних переменных, к которым осуществлялся доступ в процессе выполнения программы.
- Вкладка Locals (Локальные) позволяет просматривать значения переменных, к которым получается доступ в методе, выполняемом в текущий момент
- Вкладка Watch (Слежение) позволяет просматривать значения любых интересующих переменных за счет явного указания их имен непосредственно в окне Watch.
Исключения
Исключения являются замечательным средством для обеспечения надлежащей обработки ошибок в поставляемом приложении. В случае правильного применения они позволяют обрести уверенность в том, что приложению удастся справиться с трудностями, а перед пользователем никогда не появится диалоговое окно с техническим описанием неполадки. К сожалению, во время отладки исключения не столь замечательны. На то имеются :
- Если исключение возникает во время отладки, часто не нужно, чтобы оно обрабатывалось автоматически, особенно если это подразумевает аккуратное завершение программы. Напротив, отладчик должен помочь выяснить, по какой причине возникло это исключение. Конечно же, трудность состоит в том, что в случае написания качественного надежного и отказоустойчивого кода, программа будет автоматически обрабатывать практически все, в том числе и неполадки, которые требуется обнаружить.
- Если возникло исключение, для которого не было предусмотрено обработчика, исполняющая среда .NET все равно будет пытаться его найти. К сожалению, к моменту, когда она обнаружит, что обработчик не существует, выполнение программы будет завершаться. Никакого стека вызовов, следовательно, не останется, и просматривать значения каких-либо переменных будет невозможно, потому что все они будут находиться за пределами области видимости.
Конечно, можно устанавливать точки останова в блоках catch, но это часто особо не помогает, поскольку при достижении блока catch поток управления по определению покинет соответствующий блок try. Это означает, что переменные, значения которых, скорее всего, следовало изучить для выяснения того, что пошло не так, покинут область видимости. Не будет даже возможности просматривать трассировочные данные стека для выяснения, какой метод выполнялся во время срабатывания оператора throw, поскольку управление уже покинет этот метод. Разумеется, помещение точки останова в оператор throw позволит решить эту проблему, но надо учитывать, что при написании кода защищенным образом операторов throw будет в коде очень много. Как тогда угадать, какой из них срабатывает и приводит к генерации исключения?
На самом деле в Visual Studio предлагается очень действенное решение. Если заглянуть в меню Debug (Отладка), то можно будет обнаружить там пункт Exceptions (Исключения). В случае выбора этого пункта открывается диалоговое окно Exceptions (Исключения). Это окно позволяет указывать, что должно происходить при выдаче исключения. Здесь можно указать, что выполнение должно продолжаться или же останавливаться с переходом в режим отладки, в случае чего произойдет останов, а отладчик окажется прямо на самом операторе throw:
Visual Studio известно обо всех классах исключений, которые доступны в базовых классах .NET, и о многих таких исключениях, которых могут выдаваться за пределами среды .NET. Распознавать автоматически специальные классы исключений, создаваемые разработчиками, Visual Studio не умеет, но позволяет вручную добавлять такие классы исключений в список и, следовательно, указывать, какие из таких исключений должны приводить к немедленному прекращению выполнения приложения. Для этого необходимо щелкнуть на кнопке Add (Добавить), которая активизируется при выборе самого верхнего узла в дереве, и ввести имя специального класса исключения.
Дополнительные команды отладки исходного кода
Компиляция практически всего коммерческого программного обеспечения на стадии отладки и на стадии подготовки окончательной версии продукта должна проводиться немного по-разному. Среда Visual Studio способна понимать это, поскольку сохраняет информацию обо всех параметрах, которые ей надлежит передавать компилятору. Для поддержки разных вариантов компоновки проекта Visual Studio потребуется сохранять подобную информацию в более чем одном экземпляре. Разные экземпляры такой информации называются конфигурациями. При создании проекта Visual Studio автоматически предлагает на выбор две таких конфигурации, которые называются, соответственно, Debug (Отладка) и Release (Выпуск):
- Конфигурация Debug обычно указывает, что никакие операции по оптимизации выполняться не должны, в исполняемом коде должна присутствовать дополнительная отладочная информация, а компилятор должен предполагать, что в коде определен препроцессорный символ отладки Debug, если только он не был явно отменен с помощью директивы #undefined.
- Конфигурация Release указывает, что компилятор должен проводить в отношении компилируемого кода оптимизацию, в исполняемом коде не должно присутствовать никакой дополнительной информации, а компилятор не должен предполагать наличие препроцессорного символа Debug.
Можно также определять собственные конфигурации. Это необходимо, например, для компоновки приложения с несколькими отличающимися версиями. Раньше из-за проблем, связанных с поддержкой кодировки Unicode в Windows NT, но не в Windows 95, для многих проектов на С++ было принято создавать две конфигурации — одну для Unicode, а вторую для (multibyte character set — набор многобайтных символов).
Как поставить точку останова в Visual Studio 2019
Visual Studio 2019 является одной из самых популярных интегрированных сред разработки (IDE) для создания программного обеспечения. Одним из важных инструментов, которыми можно пользоваться в Visual Studio, является точка останова. Она позволяет остановить выполнение программы в определенном месте, чтобы проанализировать ее состояние и отладить ошибки.
Чтобы поставить точку останова в Visual Studio 2019, следуйте следующим шагам:
- Откройте проект в Visual Studio 2019. Если вы еще не создали проект, выберите соответствующий шаблон проекта и создайте новый проект.
- Найдите строку кода, в которой вы хотите поставить точку останова. Вы можете выбрать любую строку кода, в которой вы хотите проанализировать состояние программы.
- Нажмите на левую панель редактора слева от строки кода, чтобы поставить точку останова. Вы увидите красный кружок, который обозначает точку останова.
Теперь, когда точка останова установлена, вы можете запустить программу в режиме отладки. Когда выполнение программы достигнет точки останова, оно остановится, и вы сможете проанализировать состояние переменных, выполнять шаги отладки и исправлять ошибки.
В заключение, постановка точек останова является важной частью процесса отладки программного обеспечения в Visual Studio 2019. Она позволяет вам анализировать состояние программы и исправлять ошибки. Следуйте описанным выше шагам, чтобы использовать этот инструмент эффективно в своих проектах.
Открыть проект в Visual Studio 2019
Visual Studio 2019 — это интегрированная среда разработки (IDE), которая позволяет разработчикам создавать приложения для различных платформ и технологий, включая Windows, ASP.NET, Android, iOS и многое другое. Чтобы поставить точку останова в Visual Studio 2019, необходимо сначала открыть проект в среде разработки.
Вот пошаговая инструкция по открытию проекта в Visual Studio 2019:
- Запустите Visual Studio 2019.
- На стартовом экране выберите пункт «Открыть проект или решение».
- В появившемся диалоговом окне «Открыть проект или решение» найдите и выберите файл проекта с расширением .sln или .csproj, который вы хотите открыть.
- Нажмите кнопку «Открыть».
После выполнения этих шагов выбранный проект будет открыт в Visual Studio 2019, и вы сможете продолжать работу с ним, включая установку точки останова.
Открытый проект будет отображаться в окне «Обозреватель решений», где вы сможете найти все файлы проекта и его структуру.
Теперь вы готовы установить точку останова в Visual Studio 2019 и начать отладку вашего проекта.
Выбрать файл для отладки
Чтобы поставить точку останова в Visual Studio 2019, необходимо выбрать файл, в котором будет происходить отладка кода. Выбранный файл должен быть открыт в редакторе кода Visual Studio.
Для выбора файла для отладки:
- Откройте проект в Visual Studio 2019.
- Перейдите к файлу, в котором хотите поставить точку останова.
- Убедитесь, что файл открыт в редакторе кода.
После выполнения этих шагов вы будете готовы поставить точку останова в выбранном файле и начать отладку вашего кода в Visual Studio 2019.
Выбрать строку для остановки
Чтобы поставить точку останова в Visual Studio 2019, необходимо выбрать строку кода, в которой вы хотите приостановить выполнение программы для отладки.
Для выбора строки кода для остановки выполнения программы выполните следующие шаги:
- Откройте проект или файл, в котором хотите поставить точку останова, в Visual Studio 2019.
- Перейдите к нужному месту в исходном коде программы, где вы хотите поставить точку останова.
- Щелкните левой кнопкой мыши на номере строки слева от кода, чтобы выбрать строку.
После выполнения этих шагов будет поставлена точка останова, и при запуске программы она будет приостанавливаться на выбранной строке. В точке останова вы сможете просмотреть текущие значения переменных, выполнить пошаговую отладку и анализировать состояние программы.
Запустить отладку проекта
После того, как вы настроили точку останова в вашем проекте в Visual Studio 2019, вы готовы запустить отладку и проверить его работу. Вот пошаговая инструкция:
- Откройте свой проект в Visual Studio 2019.
- Перейдите в меню Отладка (Debug) и выберите пункт Начать отладку (Start Debugging) или нажмите клавишу F5.
- Visual Studio запустит ваш проект в режиме отладки.
- Когда выполнение программы достигает точки останова, отладчик приостановит выполнение и покажет вам текущее состояние вашего проекта.
- Вы можете использовать различные функции отладчика, чтобы проанализировать переменные, выполнить шаги по коду или просмотреть стек вызова.
- Если вы хотите продолжить выполнение программы после точки останова, вы можете нажать кнопку Продолжить (Continue) на панели инструментов или нажать клавишу F5.
Теперь вы знаете, как запустить отладку проекта в Visual Studio 2019 и использовать точки останова для анализа работы вашего кода. Это мощный инструмент, который поможет вам устранить ошибки и улучшить качество вашего программного продукта.