Учебный курс по отладке проектов на языках C и C++

В этом кратком практическом руководстве рассматриваются некоторые аспекты отладки проектов C или C++ в IDE NetBeans.

Содержание

Содержимое на этой странице применимо к IDE NetBeans 7.4 и 8.0
Требования
Создание примера проекта
Создание точек останова
Запуск сеанса отладки
Проверка состояния приложения

Требования

Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.

Программное обеспечение или материал Требуемая версия
IDE NetBeans версия 7.4 или 8.0 с подключаемым модулем NetBeans C/C++
Комплект для разработчика на языке Java (JDK) версия 7 или 8

Сведения о загрузке и установке необходимого программного обеспечения см. в разделах Инструкции по установке IDE NetBeans и Настройка IDE NetBeans для C/C++/Fortran.

Создание примера проекта

В IDE NetBeans с C/C++ используется отладчик gdb и обеспечиваются различные функции для отладки проектов пользователей. Для наглядного рассмотрения этих функций в этом практическом руководстве используется проект Quote. Если проект еще не создан, выполните следующие действия:

  1. Выберите команду "Файл" > "Новый проект".
  2. В мастер проекта разверните категорию "Образцы" и подкатегорию "C/C++".
  3. Выберите подкатегорию "Приложения", затем выберите проект Quote. Нажмите кнопку "Далее", а затем нажмите кнопку "Готово".

Создание точек останова

Можно создавать точки останова и управлять ими в коде в любое время без запуска сеанса отладки.

Создание и удаление точек останова на строке

  1. В проекте Quote_1 откройте файл quote.cc.
  2. Установите точку останова на строке, щелкнув левое поле окна редактора исходного кода рядом со строкой 171 (response = readChar("Enter disk module type: (S for single disks, R for RAID; Q - exit)", 'S');). Строка будет выделена красным цветом, что обозначает установку точки останова.
    Снимок окна 'Точка останова'
  3. Чтобы удалить точку останова, щелкните значок в левом поле.
  4. Выберите "Окно" > "Отладка" > "Точки останова", чтобы открыть окно точек останова. Линейная точка останова находится в списке под узлом C/C++.
    Снимок окна 'Точка останова'
  5. Разверните узел C/C++, чтобы стала видна точка останова.
    Снимок окна 'Точка останова'

Создание точки останова на функции

  1. Нажмите кнопку 'Создать новую точку останова' в левой части окна 'Точки останова' или выберите Отладка > Создать точку останова (Ctrl+Shift+F8)", чтобы открыть диалоговое окно 'Создание точки останова'.
  2. В списке 'Тип отладчика' выберите 'Встроенный'.
  3. В списке 'Тип точки останова' выберите 'Функция'.
  4. Введите имя функции Customer::GetDiscount в текстовом поле "Имя функции". Нажмите кнопку "ОК".
    Моментальный снимок диалогового окна 'Создать точку останова'
  5. Точка останова на функции установлена и добавлена в список в окне "Точки останова".
    Снимок окна 'Точка останова'
  6. Нажмите кнопку 'Выбрать группы точек останова' в левой части окна, чтобы объединить точки останова в различные группы и выбрать тип.
    Снимок объединения точек останова в группы в окне 'Точки останова'
  7. Разверните группы 'Файл:Строка' и 'Функция', чтобы стали видны точки останова.
    Снимок точек останова, объединенных в группы

Запуск сеанса отладки

При запуске сеанса отладки в среде IDE запускается отладчик gdb, а затем выполняется приложение внутри отладчика. IDE автоматически открывает окна и панель инструментов отладчика и выводит результаты отладки в окне 'Результаты'.

  1. Начните сеанс отладки для проекта Quote_1. Для этого нажмите кнопку 'Отладить проект' Снимок кнопки 'Отладить' или выберите Отладка > Отладить проект.
    Запускается отладчик и приложение выполняется. Отображается панель инструментов отладчика.
    Снимок кнопок на панели инструментов отладчика
  2. Откройте окно "Сеансы": для этого выберите "Окно" > "Отладка" > "Сеансы".
    Сеанс отладки показан в этом окне.

Проверка состояния приложения

  1. Приложение Quote_1 отображает запрос на ввод данных в окне 'Результаты (Отладка)'.
  2. Введите имя клиента после запроса "Enter customer name:" (Введите имя клиента).

    Приложение останавливается на ранее заданной точке останова функции Customer::GetDiscount, и в редакторе открывается файл customer.cc с фокусом в строке, где вызывается данная функция. В окне 'Точки останова' отобразятся две точки останова, установленные ранее. Зеленая стрелка счетчика программы отображается поверх значка точки останова функции.
    Снимок вкладки 'Точка останова'

  3. Нажмите на вкладку, чтобы открыть окно 'Стек вызовов' или выберите Окно > Отладка > Стек вызовов. В стеке вызовов отображаются три окна.
    Снимок вкладки 'Стек вызовов'
  4. Откройте окно "Переменные", в которой отображается одна переменная.
  5. Щелкните значок 'Развернуть', чтобы развернуть структуру.
    Снимок вкладки 'Переменные'
  6. Нажмите кнопку "Продолжить" на панели инструментов.
    Будет выполнена функция GetDiscount, и результаты скидки для клиента появятся в окне 'Результаты (Отладка)'. После этого отобразится запрос на ввод данных.
  7. Введите данные после отображения запроса.

    Программа остановится в следующей точке останова – в заданной ранее точке останова на строке. В файле quote.cc вверху значка точки останова отобразится зеленая стрелка счетчика команд, обозначающая строку, на которой остановлена программа.

    Снимок окна вывода

  8. Перейдите на вкладку "Переменные", в которой отобразится длинный список переменных.
    Снимок вкладки 'Локальные переменные'
  9. Перейдите на вкладку "Стек вызовов", в которой теперь отобразится одно окно в стеке.
  10. Выберите "Окно" > "Отладка" > "Регистры".
    Откроется окно "Регистры", отображающее текущее содержимое регистров.
    Снимок окна 'Регистрация'
  11. Выберите "Окно" > "Отладка" > "Дисассемблер".
    Откроется окно "Дисассемблер", отображающее команды ассемблера для текущего файла исходного кода.
    Снимок окна 'Дисассемблер'
  12. Нажмите кнопку 'Продолжить'; на панели инструментов и продолжите вводить данные в ответ на запросы в окно вывода, пока программа не будет завершена.
  13. Когда вы нажимаете Enter, чтобы выйти из программы, сеанс отладки завершается. Чтобы завершить сеанс отладки до завершения выполнения программы, можно нажать кнопку 'Завершить сеанс отладчика' на панели инструментов или выбрать Отладка > Завершить сеанс отладчика.

См. также

Дополнительные статьи о разработке с помощью C/C++/Fortran в IDE NetBeans см. в разделе Учебные карты C/C++.

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo