Содержимое

# Отладка программы Basic

## Точки останова и пошаговое выполнение

Каждую строку в программе Basic можно проверить на наличие ошибок с помощью пошагового выполнения. Отслеживание ошибок происходит без труда, поскольку результат каждого шага можно увидеть сразу. Курсор в столбце точек останова редактора указывает текущую строку. Кроме того, можно задать точку останова, если нужно, чтобы программа была прервана в определённом положении.

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

Пошаговое выполнение, вызываемое с помощью значка Шаг, приводит к ветвлению программы на процедуры и функции.

Пошаговое выполнение процедуры, вызываемое с помощью значка Шаг с обходом, приводит к тому, что программа "перескакивает" через процедуры и функции за один шаг.

### Свойства точки останова

Свойства точки останова доступны в её контекстном меню, если щёлкнуть правой кнопкой мыши точку останова в столбце точек останова.

Точку останова можно активировать и деактивировать, выбрав в контекстном меню команду Активировать. Когда точка останова деактивирована, выполнение программы не прерывается.

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

В списке отображаются все точки останова с соответствующим номером строки в исходном коде. Выбранную точку останова можно активировать или деактивировать, установив или сняв флажок Активировать.

Параметр Пропусков указывает число пропусков точки останова перед прерыванием программы. Если ввести 0 (параметр по умолчанию), программа всегда будет прерываться при достижении точки останова.

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

## Наблюдение значений переменных

Значения переменной можно контролировать, добавив её в окно Контрольное значение. Чтобы добавить переменную в список контролируемых переменных, введите имя переменной в текстовое поле Контрольное значение и нажмите клавишу Enter.

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

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

Если установить курсор мыши над предопределённой переменной в редакторе во время выполнения, содержимое этой переменной будет отображаться во всплывающем поле.

## Окно "Стек вызовов"

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

## Список ошибок выполнения

1 Исключительная ситуация

2 Синтаксическая ошибка

3 Оператор Return без Gosub

4 Неправильная запись; пожалуйста, повторите

5 Неправильный вызов процедуры

6 Переполнение

7 Недостаточно памяти

8 Размер массива уже определен

9 Индекс вне допустимого диапазона

10 Повторяющееся определение

11 Деление на ноль

12 Переменная не определена

13 Несоответствие типов

14 Неверный параметр

18 Процесс прерван пользователем

20 Вызов оператора Resume когда нет ошибок

28 Недостаточно стековой памяти

35 Подпрограмма или функция не определена

48 Ошибка загрузки DLL

49 Неверное соглашение о вызове DLL

51 Внутренняя ошибка

52 Неправильное имя или номер файла

53 Файл не найден

54 Неправильный режим файла

55 Файл уже открыт

57 Ошибка устройства ввода/вывода

58 Файл уже существует

59 Неправильная длина записи данных

61 Диск или жёсткий диск заполнен

62 Выход за границы маркера конца файла

63 Неверный номер записи

67 Слишком много файлов

68 Устройство недоступно

70 Доступ запрещён

71 Диск не готов

73 Не реализовано

74 Переименование на других приводах невозможно

75 Ошибка доступа к пути или файлу

76 Путь не найден

91 Переменная объекта не установлена

93 Недопустимая строка шаблона

94 Использование нуля не допускается

250 Ошибка DDE

280 Ожидание ответа DDE подключения

281 DDE каналы недоступны

282 Приложение не ответило на инициирование DDE подключения

283 Слишком много приложений ответило на инициирование DDE подключения

284 DDE канал заблокирован

285 Внешнее приложение не может запустить DDE операцию

286 Превышено время ожидания ответа DDE

287 Пользователь нажал ESCAPE во время DDE операции

288 Внешнее приложение занято

289 DDE операция без данных

290 Данные в неправильном формате

291 Внешнее приложение было уничтожено

292 DDE подключение прервано или модифицировано

293 DDE метод вызван без открытого канала

294 Неправильный формат ссылки DDE

295 DDE сообщение было потеряно

296 Вставка ссылки уже выполнена

297 Режим ссылки не может быть установлен из-за неверной ссылки на раздел

298 DDE требуется файл DDEML.DLL

323 Модуль не может быть загружен; неверный формат

341 Неверный индекс объекта

366 Объект недоступен

380 Неверное значение свойства

382 Свойство доступно только для чтения

394 Свойство доступно только для записи

420 Неправильная ссылка на объект

423 Свойство или метод не найдены

424 Требуется объект

425 Недопустимое использование объекта

430 OLE автоматизация не поддерживается этим объектом

438 Это свойство или метод не поддерживается объектом

440 Ошибка автоматизации OLE

445 Объект не поддерживает это действие

446 Объект не поддерживает указанные аргументы

447 Объект не поддерживает текущие настройки локали

448 Указанный аргумент не найден

449 Аргумент не дополнительный

450 Неправильное количество аргументов

451 Объект не является списком

452 Неверное порядковое число

453 Указанная функция в DLL не найдена

460 Недопустимый формат буфера обмена

951 Неожиданный символ:

952 Ожидалось:

953 Символ ожидается

954 Переменная ожидается

955 Метка ожидается

956 Значение не может быть применено

957 Переменная уже определена

958 Подпрограмма или функция уже определена

959 Метка уже определена

960 Переменная не найдена

961 Массив или процедура не определена

962 Процедура не найдена

963 Метка не определена

964 Неизвестный тип данных

965 Ожидается выход

966 Блок ещё открыт: отсутствует

967 Скобки не совпадают

968 Символ уже определён по-другому

969 Параметры не соответствуют процедуре

970 Недопустимый символ в числе

971 Массив должен быть размерным

972 Else/Endif без If

973 not allowed within a procedure

974 not allowed outside a procedure

975 Характеристики размерности не совпадают

976 Неизвестная опция:

977 Константа повторно определена

978 Программа слишком большая

979 Строки или массивы не допускаются

1000 Объект не содержит это свойство

1001 Объект не содержит этот метод

1002 Отсутствует обязательный аргумент

1003 Неверное количество аргументов

1004 Ошибка при выполнении метода

1005 Невозможно установить свойство

1006 Невозможно определить свойство