ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 25


Приложение F
Блоки диалога и сообщения об ошибках
-----------------------------------------------------------------


     Отладчик Turbo Debugger отображает свои сообщения об ошибках
и сообщения блоков диалога в текущей позиции курсора.

     В этом   приложении   описаны   сообщения   блоков  диалога,
сообщения об ошибках и информационные  сообщения,  которые  может
выдавать отладчик Turbo Debugger.

     Объясняется, как   отвечать  на  запросы  блоков  диалога  и
собщения об ошибках.  Все сообщения блоков диалога и сообщения об
ошибках  (включая  сообщения о фатальных ошибках,  выдаваемые при
запуске отладчика) перечислены в алфавитном порядке  с  описанием
каждого из них.

Блоки диалога
-----------------------------------------------------------------

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

     Вы можете ответить на запрос одним из двух способов:

     -  ввести ответ и подтвердить его, нажав клавишу Enter;

     - нажать  клавишу  Esc,  чтобы отменить запрос и вернуться в
меню команд, которое предшествовало данному блоку диалога.

     Некоторые блоки  диалога  предоставляют  возможность  выбора
только одного из двух элементов (например,  yes/no - да/нет). Для
выбора нужного элемента можно  использовать  клавиши  перемещения
курсора и нажать Enter, либо непосредственно нажать клавишу Y или
N. Для отмены команды надо нажать клавишу Esc.

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

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

     Already recording, do you want to abort?
     (Запись уже идет; хотите ли вы прервать ее?)
     Вы уже  записываете  клавишный  макрос.  Вы не можете начать
записывать новый макрос, пока не будет завершена запись текущего.
Нажмите   Y,  чтобы  остановить  запись  макроса,  или  N,  чтобы
продолжить ее.

     Device error - Retry?
     (Ошибка устройства; сделать повторную попытку?)
     Во время  вывода  информации   на   символьное   устройство,
например,  принтер,  произошла  ошибка.  Это  могло  произойти  в
результате отсоединения кабеля принтера,  перехода  его  в  режим
"offline",  или  отсутствия бумаги.  Устраните причину ошибки,  а
затем нажмите Y, чтобы попытаться выполнить операцию заново, либо
N, чтобы ее отменить.

     Disk error on drive __ - Retry?
     (Ошибка при обращении к диску __; сделать повторную попытку?)
     При обращении к указанному диску произошла ошибка. Это может
означать,  что в дисководе отсутствует  дискета,  или,  в  случае
жесткого   диска,   это   может   указывать   на  нечитаемую  или
незаписываемую область диска.  Вы можете нажать Y и посмотреть, к
чему приведет повторная попытка, либо N, чтобы отменить операцию.

     Edit watch expression
     (Отредактируйте отслеживаемое выражение)
     Скорректируйте или  замените отслеживаемое выражение. Запрос
относится  к  отслеживаемому  выражению,  выделенному  в   данный
момент.

     Enter address, count, byte value
     (Введите адрес, количество и значение байта)
     Введите адрес  блока  памяти,  в  который вы хотите записать
конкретное значение байта,  количество  байтов  в  этом  блоке  и
значение, которым должен быть заполнен этот блок.

     Enter address to position to
     (Введите адрес для позиционирования)
     Введите адрес  программы  для  просмотра.  Можно  ввести имя
функции, номер  строки,  абсолютный   адрес   или   выражения   с
указателями памяти. Ввод адресов более подробно описан в главе 9.

     Enter animate delay (10ths of sec)
     (Введите задержку для "оживления" (в 10-ых долях секунды))
     Укажите, с   какой   задержкой  должна  выполняться  команда
Animate.  Чем больше введенное число,  тем больше задержка  между
последовательными шагами процесса "оживления".

     Enter code address to execute to
     (Введите адрес, до которого следует выполнить программу)

     Введите адрес в программе, до которого следует выполнить эту
программу. Ввод адресов более подробно описан в главе 9.

     Enter command-line arguments
     (Введите аргументы командной строки)
     Введите параметры командной строки для отлаживаемой программы.

     Enter comment to add to end of log
     (Введите комментарий, который надо добавить в конец журнала)
     Введите произвольную   строку   текста,  которую  необходимо
добавить к сообщениям,  отображаемым в окне просмотра журнала. Вы
можете  ввести  любой  текст,  который считаете нужным;  он будет
помещен в журнал точно в таком виде, в котором вы его ввели.

     Enter expression for conditional breakpoint
     (Введите выражение для условной точки останова)
     Введите выражение,  которое  должно  быть   истинно   (иметь
ненулевое значение) для того, чтобы была включена точка останова.
Это выражение будет вычисляться при каждом проходе точки останова
по  ходу  выполнения  программы.  Будьте  осторожны  в  отношении
возможных побочных эффектов.

     Enter expression to evaluate
     (Введите выражение, которое надо вычислить)
     Введите выражение,  значение которого вы  хотели  бы  знать.
Значение  и  тип  результата будут отображены в специальном окне,
которое исчезает при следующем нажатии клавиши.

     Enter expression to watch
     (Введите выражение, которое надо отследить)
     Введите имя переменной или выражение,
которое вы  хотите отслеживать в окне Watches.  При желании можно
ввести выражение, не относяшееся к адресу памяти, например x*y+4.
Если данный  блок  диалога инициализирован из текстового подокна,
то поддтвердить ввод можно нажатием  Enter,  либо  можно  измениб
ввод и заменить его полностью на любое другое выражение.


     Enter inspect start index, range
     (Введите начальный индекс и диапазон для проверки данных)
     Введите индекс  первого  элемента  и  количество   элементов
массива,  которые  вы хотели бы просмотреть.  Между двумя числами
поставьте пробел или запятую.

     Enter instruction to assemble
     (Введите команду, которую требуется ассемблировать)
     Введите команду языка ассемблера,  которая  должна  заменить
команду с текущим адресом в подокне кода. В приложении C приведен
сжатый список всех зарезервированных слов языка ассемблера,  а  в
главе 11 язык ассемблера рассмотрен более подробно.

     Enter log file name
     (Введите имя журнального файла)
     Введите имя файла,  в который вы хотите записать журнал.  До
тех пор,  пока вы не выполните команду Close  log  file  (закрыть
журнальный   файл),  все  строки,  передавемые  в  журнал,  будут
записываться  в  этот  файл,  а   также   отображаться   в   окне
регистрации. По умолчанию журнальный файл имеет расширение .LOG и
имя,  совпадающее с  именем  отлаживаемой  программы.  Вы  можете
подтвердить это имя, нажав клавишу Enter, либо ввести вместо него
новое имя.

     Enter memory address
     (Введите адрес области памяти)
     Введите один адрес области памяти.  В качестве адреса  можно
использовать либо идентификатор, либо полное выражение.

     Enter memory address,count
     (Введите адрес области памяти,число)
     Введите адрес  области памяти и через запятую необязательное
число  элементов.  В  качестве  адреса  можно  использовать  либо
идентификатор, либо полное выражение.


     Enter name of configuration file
     (Введите имя файла конфигурации)
     Введите им я файла конфигурации для чтения или  записи. Если
вы  собираетесь  считывать информацию из файла,  вы можете ввести
метасимвольную маску и получить список соответствующих ей файлов.

     Enter name of file to view
     (Введите имя файла для просмотра)
     Вы можете использовать метасимволы  DOS  и  получить  список
файлов,  либо  ввести имя конкретного файла,  который должен быть
загружен.

     Enter new bytes
     (Введите новые байты)
     Введите последовательность байтов,  которые должны  заменить
байты файла,  находящиеся в позиции, отмеченной курсором. В главе
9 приведена подробная информация о последовательностях байтов.

     Enter new coprocessor register value
     (Введите новое значение регистра сопроцессора)
     Введите новое  значение  для  выделенного  в  данный  момент
регистра числового процессора. Вы можете ввести полное выражение,
которое будет  формировать  новое  значение.  Перед  загрузкой  в
регистр  это  выражение будет преобразовано в правильный формат с
плавающей точкой.

     Enter new data bytes
     (Введите новые байты данных)
     Введите послеодовательность байтов,  которые должны заменить
байты  сегмента,  находящиеся в позиции,  отмеченной курсором.  В
главе 9  приведена  подробная  информация  о  последовательностях
байтов.

     Enter new directory
     (Введите новую директорию)
     Введите новое  имя  дисковода  и/или директории,  которые вы
хотели бы сделать текущими.

     Enter new file offset
     (Введите новое смещение файла)
     Вы просматриваете   дисковый   файл   в    шестнадцатиричном
представлении. Введите   смещение   относительно   начала   файла
области, которую   вы    желаете    просмотреть.    Файл    будет
позиционирован в строку, соответствующую заданному вами смещению.
     Введите метасимвольную спецификацию, принятую в DOS, которая
соответствует  файлам,  список  которых вы хотите просмотреть.  В
спецификацию может входить новое имя диска или директории.

     Enter new line number
     (Введите новый номер строки)
     Введите номер строки текущего  модуля,  которую  вы  желаете
видеть. Если  введенный  вами  номер  строки  находится за концом
файла, то выведена будет последняя строка файла.  Нумерация строк
начинается с 1 для первой строки файла.  Текущий номер строки,  в
которой находится курсор, обозначен в первой строке окна Module.

     Enter new relocation segment value
     Введите новый номер сегмента
     Введите выражение  на  текущем  языке.  Это  значение  будет
использовано для  установки  адреса  базового  сегмента   таблицы
символических имен,   загружаемой   командой   File|Symbol  Load.
Введенное вами  выражение  должно  при  вычислении  давать  номер
сегмента начала кода,  к которому относится таблица символических
имен.

     Enter new value
     (Введите новое значение)
     Введите новое  значение для регистра процессора, выделенного
в данный момент.  Вы может ввести полное выражение, которое будет
формировать новое значение.

     Enter port number
     (Введите номер порта)
     Введите номер  порта  ввода/вывода,  из  которого  вы хотите
ввести значение.  Допустимые номера портов находятся в  диапазоне
от 0 до 65535.

     Enter port number, value to output
     (Введите номер порта, значение для вывода)
     Введите номер   порта  ввода/вывода,  в  который  вы  хотите
вывести значение,  а также само это значение.  Два этих выражения
должны быть разделены запятой. Допустимые номера портов находятся
в диапазоне от 0 до 65535.


     Enter program name to load
     (Введите имя программы, которую надо загрузить)
     Введите имя программы, которую вы собираетесь отлаживать. Вы
можете получить на экране список  файлов,  используя  метасимволы
DOS,  либо  ввести  конкретное  имя  файла,  который  должен быть
загружен.  Если не указано расширение  файла,  будет  добавляться
расширение .EXE.

     Enter read file name
     (Введите имя файла, который надо считать)
     Введите имя файла или метасимвольную спецификацию для файла,
который  вы  хотите   считать   в   память.   Если   вы   введете
метасимвольную  спецификацию  или  подтвердите  спецификацию *.*,
используемую по  умолчанию,  на  экране  будет  отображен  список
соответствующих ей файлов, из которого вы сможете выбрать нужный.

     Enter search bytes
     (Введите искомые байты)
     Введите последовательность  байтов,  которые будут искаться,
начиная с позиции в памяти,  отмеченной курсором. Более подробная
информация о последовательностях байтов приведена в главе 9.

     Enter search instruction or bytes
     (Введите искомую команду или байты)
     Введите команду  в  таком же виде,  как для команды Assemble
локального меню,  или последовательность байтов,  как для команды
Search в подокне данных.

     Set search string
     (Введите искомую строку)
     Введите искомую   строку   символов.  Для  этого  вы  можете
использовать метасимволы,  если требуется неточно задать  искомую
строку; например, * заменяет нулевое и более количество символов,
а ? заменяет один символ.

     Enter source address, destination, count
     (Введите адрес источника, назначение, количество)
     Введите адрес  блока,   который   вы   хотите   переместить,
количество байтов и адрес результирующего блока,  в который будут
перемещены байты. Три выражения должны быть разделены запятыми.

     Enter source directory list
     (Введите список директорий, содержащих исходные файлы)
     Введите список директорий, разделенных пробелами или точками
с  запятой.  Поиск  исходных  файлов  в  этих  директориях  будет
производиться в том порядке,  в котором  они  записаны  в  данном
списке.

     Enter symbol table name
     (Введите имя таблицы символических имен)
     Введите имя таблицы символических имен,  которая должна быть
загружена с  диска.  Обычно  эти  файлы  имеют  расширение  .TDS.
Расширение должно быть задано явно.

     Enter tab column spacing
     (Введите количество столбцов между символами табуляции)
     Введите число  от  1 до 32,  которое задает расстояние между
символами табуляции при отображении файлов в  окне  файла  или  в
окне модуля.

     Enter variable to inspect
     (Введите имя переменной для проверки)
     Введите имя  переменной  или выражение,  значения которых вы
хотите проверить.  Если запрос появился из текстового подокна, вы
можете подтвердить элемент, нажав клавишу Enter, изменить его или
ввести что-либо другое.

     Enter write file name
     (Введите имя файла для записи)
     Введите имя файла,  в который вы хотите записать  содержимое
блока памяти.

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

     Overwrite existing macro on selected key?
     (Затереть существующий макрос для выбранной клавиши?)
     Вы нажали клавишу для записи макроса,  а  этой  клавише  уже
назначен  другой  макрос.  Если  вы  хотите затереть существующий
макрос новым,  нажмите клавишу Y;  в противном случае нажмите  N,
чтобы отменить команду.

     Pick a method name
     (Выберите имя правила)
     Вы задали имя подпрограммы, которое может относиться к более
чем одному правилу объекта.  Вы должны выбрать требуемое  имя  из
представленного вам списка.

     Pick a module
     (Выберите модуль)
     Выберите модуль,  который  вы  будете  просматривать  в окне
модуля.  Вам  будет  предоставлен  список  всех   модулей   вашей
программы.  Если вы хотите просмотреть файл,  который не является
программным модулем, используйте команду меню View/File.

     Pick a source file
     (Выберите исходный файл)
     Выберите исходный файл из отображенного  на  экране  списка.
Отображаются  только  те  исходные файлы,  из которых сформирован
текущий модуль.

     Pick a symbol
     (Выберите символическое имя)
     Выберите символическое имя из выведенного на дисплей списка.
Когда вы  начнете  набирать  имя,  курсор  будет позиционирован в
первое из соответствующих введенному имя.

     Pick a window
     (Выберите окно)
     Выберите окно из списка заголовков активных окон.

     Press key to assign macro to
     (Нажмите клавишу, которой должен быть назначен макрос)
     Нажмите клавишу,  которую  вы   хотите   назначить   данному
макросу.    Затем    нажмите    нажмите    клавиши,    вызывающие
последовательность команд,  которые вы  хотите  назначить  данной
клавише  макроса.  Команды  будут  реально выполняться по мере их
ввода.  Чтобы завершить запись макроса,  нажмите клавишу, которая
была ему назначена; макрос будет записан на диск вместе с другими
клавишными макросами.

     Press key to delete macro from
     (Нажмите клавишу для макроса, который надо удалить)
     Нажмите клавишу,  назначенную  макросу,  который  вы  хотите
удалить.   После  этого  клавише  будет  возвращена  ее  исходная
функция.

     Program already terminated; reload?
     (Программа уже остановлена; перезагрузить?)
     Вы попытались запустиь программу  или  начать  ее  пошаговую
отладку  после  того,  как  она  была  уже  остановлена.  Если вы
ответите на этот вопрос положительно (нажав клавишу Y), программа
будет   перезагружена.  Если  вы  ответите  нажатием  клавиши  N,
программа не будет перезагружена,  и  ваша  команда  запуска  или
пошаговой отладки не будет выполнена.

     Program out of date on remote; send over link?
     (Программа на удаленной системе устарела; передать по линии
      связи?)
     Вы запускаете отладчик Turbo  Debugger  по  линии  связи,  а
программа либо отсутствует на удаленной системе, либо старше, чем
версия,  находящаяся  на  основной  системе.  Если  вы   ответите
положительно (нажав клавишу Y), новая программа будет передана на
удаленную систему по  линии  связи.  Если  вы  ответите  нажатием
клавиши  ,  команда  загрузки  будет  отменена.  Если установлена
наименьшая скорость передачи,  вы можете скопировать программу на
удаленную  систему вручную,  используя дискету.  При максимальной
скорости передачи,  пересылка производится,  как минимум,  так же
быстро, как и при использовании дискеты.

     Reload program so arguments take effect?
     (Перезагрузить программу, чтобы учитывались аргументы?)
     Вы изменили  аргументы  командной  строки  для  отлаживаемой
программы.  Если вы ответите на этот  вопрос  положительно,  ваша
программа  будет перезагружена и возвращена в исходное состояние.
Обычно  это  бывает  желательно   после   изменения   аргументов,
поскольку  программы,  написанные  на  большинстве  языков  фирмы
Borland опрашивают свои аргументы только  один  раз  -  сразу  же
после загрузки программы. Все последующие изменения аргументов не
будут  учитываться  до  тех  пор,   пока   программа   не   будет
перезагружена.

Сообщения об ошибках
-----------------------------------------------------------------

     Turbo Debugger использует сообщения  об  ошибках  для  того,
чтобы   проинформировать  пользователя  о  вещах,  которые  могут
оказаться для него неожиданными.  В  некоторых  случаях  команда,
заданная пользователем, не может быть выполнена, в других случаях
сообщение предупреждает пользователя о том,  что процесс идет  не
так, как он бы этого хотел.

     Сообщения об    ошибках   обычно   сопровождаются   звуковым
сигналом. Звуковой сигнал можно отключить как из командной строки
DOS  при  запуске  отладчика  Turbo  Debugger,  так  и  с помощью
программы настройки TDINST.

     З.2.1 Фатальные ошибки

     Все фатальные ошибки вызывают прекращение  работы  отладчика
Turbo  Debugger  и  возврат  в  DOS.  Некоторые  фатальные ошибки
происходят при  попытке  запуска  отладчика  из  DOS.  Другие  же
возникают  в  том  случае,  если  во  время  работы  с отладчиком
происходит нечто непоправимое.  В любом случае, после исправления
причины  ошибки  единственное,  что  вам  остается  сделать,  это
перезапустить отладчик из командной строки DOS.

     Bad configuration file
     (Неверный файл конфигурации)
     Файл конфигурации либо был запорчен, либо не является файлом
конфигурации  отладчика Turbo Debugger,  либо является устаревшим
файлом конфигурации, предназначенным для другой версии отладчика.

     Could not create dummy PSP segment
     (Не может быть создан фиктивный программный сегмент)
     При запуске  виртуального  отладчика  TD386   без   указания
программы,  которая должна быть загружена, фиктивная программа не
может быть создана.  Попробуйте запустить отладчик  TD386,  задав
имя программы, которую надо отладить.

     Fatal EMS error
     (Фатальная ошибка управления расширенной памятью)

     Драйвер расширенной   памяти    типа    EMS    вернул    код
невосстанавливаемой   ошибки.   Либо   сама   расширенная  память
функционирует неправильно, либо программный драйвер был запорчен.
Перезагрузите  систему  и  попытайтесь  еще  раз.  Если  проблема
повторится,  то возможно она  связана  с  аппаратными  средствами
расширенной памяти.

     Invalid switch:__
     (Неверный параметр:__)
     Вы задали  недопустимый  параметр в командной строке DOS.  В
приложении А приведен список всех параметров командной  строки  в
сокращенной  форме,  а  в главе 4 все параметры рассмотрены более
подробно.

     Not enough memory
     (Недостаточно памяти)
     Для обработки вашей команды  отладчику  не  хватает  рабочей
области памяти.

     Remote link timeout
     (Таймаут в линии связи)
     Повреждена линия  связи  с  удаленной  системой.  Попробуйте
перезагрузить обе системы и еще  раз  запустить  программу.  Если
сбой  повторится,  обратитесь  к  приложению  E,  где рассмотрена
отладка на удаленной системе.

     Unsupported video adapter
     (Неподдерживаемый видеоадаптер)
     Turbo Debugger не может определить, какой дисплейный адаптер
вы используете; поддерживаются адаптеры MDA, CGA, EGA, VGA, MCGA,
Hercules,  композитный  адаптер  фирмы  Compaq,  AT&T  и   близко
совместимые с ними.

     Wrong version of TDREMOTE
     (Неверная версия программы TDREMOTE)
     На удаленной системе работает несовместимая версия программы
TDREMOTE. Необходимо использовать одну и ту же версию программ TD
и TDREMOTE.

Сообщения об ошибках   ------------------------------------------

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

     3 * (7 + 4

     должно было быть записано:

     3 * (7 + 4)

     ':' expected
     (Требуется двоеточие)
     При вычислении  выражения  языка  Си  встетился знак вопроса
(?),  разделяющий первые  два  выражения  троичной  операции  ?:;
однако   двоеточия,   разделяющего  второе  и  третье  выражение,
обнаружено не было. Например, вместо

     x < 0 ? 4 6

     должно было быть записано:

     x < 0 ? 4 : 6

     ']' expected
     (Требуется закрывающая квадратная скобка)
     При вычислении  выражения встретилась открывающая квадратная
скобка,  с которой начинается индекс массива, без соответствующей
ей  закрывающей  скобки  после  индексного  выражения.  Например,
вместо

     table[4

     должно было быть записано:

     table[4]

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

     mov ax,4[s

     должно было быть записано

     mov ax,4[s]

     Already logging to a file
     (Уже регистрируется в файле)
     Вы ввели команду Open log  file  (открыть  журнальный  файл)
после  того,  как  уже задали ту же самую команду,  не прервав ее
выполнения командой Close log file (закрыть журнальный файл).

     Ambiguous symbol name
     (Неоднозначность в символическом имени)
     Вы ввели  символическое  имя   в   выражении,   неоднозначно
идентифицирующее правило       в       программе      Си      или
объекто-ориентированного Паскаля и не желаете выбирать корректное
имя из  списка.  Для  вычисления  выражения  вы  обязаны  выбрать
корректное имя из представленного вам списка.

     Assignment out of range
     (Присваивание за пределами диапазона)
     При выполнении операции присваивания  в  языке  Паскаль,  вы
попытались  присвоить  переменной значение,  которое находится за
пределами допустимых значений этой переменной.

     Bad configuration file name
     (Неверное имя файла конфигурации)
     Вы задали   в   параметре   командной    строки    -c    имя
несуществующего файла.

     Cannot be changed
     (Значение данной переменной не может быть изменено)
     Вы попытались изменить значение переменной, которое не может
быть  изменено.  Непосредственно  могут  быть  изменены  значения
только тех переменных,  которые относятся к скалярному типу (int,
long и т.д.  в Си; byte, integer, longint и т.д. в Паскале) или к
ссылочному типу. Если вы хотите изменить структуру или массив, вы
должны по одному изменять его отдельные элементы.

     Can't execute DOS command processor
     (Не может быть выполнен командный процессор DOS)
     Либо для выполнения командного  процессора  DOS  не  хватает
памяти,  либо командный процессор не может быть найден. Убедитесь
в  том,  что  переменная  среды   COMSPEC   правильно   указывает
местоположение командного процессора DOS.

     Can't go resident until user program terminates
     (Резидентная загрузка до завершения  программы  пользователя
невозможна)
     Вы попытались сделать Turbo Debugger  резидентным  до  того,
как стала  резидентной  отлаживаемая  программа.  Turbo  Debugger
может стать  резидентной  только  при  отсутствии  загруженной  в
память программы,  либо  после  того,  как  загруженная программа
выполнена и завершена.

     Can't have more than one segment override
     (Не может быть более одного замещения сегмента)
     Вы попытались  сассемблировать  команду,   в   которой   оба
операнда используют замещение сегмента. Только один операнд может
использовать замещение сегмента. Например, вместо

     mov es:[bx],ds:ax

     должно было быть записано:

     mov es:[bx],ax

     Can't set a breakpoint at this address
     (Точка останова не может быть установлена в данном месте)
     Вы попытались   установить   точку   останова   в   ПЗУ,   в
несуществующей памяти или в нулевом сегменте. Единственный способ
слежения за выполнением программы,  хранящейся в ПЗУ, заключается
в использовании команды Run/Trace для ее пошагового выполнения.

     Can't set any more hardware breakpoints
     (Больше не может быть установлено никаких аппаратных точек
      останова)
     Вы не можете установить еще одну аппаратную  точку останова,
предварительно  не удалив одну из установленных ранее.  Различные
аппаратные отладчики поддерживают разное количество и разные типы
аппаратных точек останова.

     Can't set hardware condition on this breakpoint
     (Аппаратные условия для этой точки останова невозможны)
     Вы попытались  установить  аппаратное  условие  срабатывания
точки останова,  не  являющейся  глобальной.  Аппаратные  условия
могут быть назначены только глобальным точкам останова.

     Can't set that sort of hardware breakpoint
     (Аппаратная точка останова этого типа не может быть
      установлена)
     Драйвер аппаратного отладчика, установленный в файле CONFIG.
SYS, не поддерживает аппаратную точку останова с комбинацией типа
цикла,  соответствия адреса и  соответствия  данных,  которую  вы
задали.

     Can't swap user program to disk
     (Программа пользователя не может быть переписана на диск)
     Вы ввели   команду,   в   результате   которой  отлаживаемая
программа должна быть записана на диск,  однако на текущем  диске
недостаточно   свободного   места  для  записи  программы.  Перед
выполнением каких-либо  команд,  требующих  записи  программы  на
диск,  вам  потребуется осводить некоторое пространство на диске.
Для  выполнения  команды  меню  File/DOS Shell  и  команды   Edit
текстового подокна требуется запись программы на диск.

     Can't use same register twice
     (Один и тот же регистр не может быть использован дважды)
     Вы попытались   сасемблировать   команду,   которая   дважды
обращается к базовому или индексному регистру в одном  и  том  же
хранимом  в памяти операнде.  В любом операнде можно использовать
регистр только один раз.
     Например, вместо

     mov ax,[bx+bx]

     должно было быть записано:

     mov ax,[bx+si]

     Cannot acces an inactive scope
     (Нельзя осуществить доступ в неактивной области действия)
     Вы ввели  выражение или указали на переменную в окне модуля,
которая не находится в активной функции.  Переменные в неактивных
функциях   имеют   неопределенные  значения,  поэтому  их  нельзя
использовать в выражениях или просматривать их значения.

     Constructors and destructors cannot be called
     (Вызов конструкторов и деструкторов невозможен)
     Это сообщение  появляется  только  при   отладке   программ,
использующих объекты. Вероятно, вы попытались выполнить объектное
правило, являющееся конструктором или деструктором  объекта.  Это
недопустимо.

     Destination too far away
     (Адрес назначения находится слишком далеко)
     Вы попытались  сассемблировать  команду  условного перехода,
где адрес назначения находится слишком далеко от текущего адреса.
Адрес назначения для команды условного перехода должен находиться
в пределах -128 и +127 байтов от самой команды.

     Divide by zero
     (Деление на ноль)
     Вы ввели выражение,  использующее операцию деления (/,  div)
или операцию получения модуля (mod,  %),  в правой части которого
записано выражение равное нулю.  Поскольку в этом случае операции
деления  и  послучения  модуля  не  имеют  определенных значений,
выдается сообщение об ошибке.

     Edit program not specified
     (Программа редактора не задана)
     Вы пытались использовать команду Edit локального  меню  окна
модуля или окна дискового файла,  но вы не задали команду запуска
редактора в программе настройки.

     Error loading program
     (Ошибка при загрузке программы)
     Операционная система DOS не в состоянии загрузить программу,
которую  вы  указали.  Это  может  означать,  что  данный файл не
является достоверным файлом типа EXE,  либо  файл  типа  EXE  был
запорчен.

     Error opening file ___
     (Ошибка при открытии файла ___)
     Turbo Debugger не может открыть файл, содержимое которого вы
хотите просмотреть в окне файла.

     Error opening log file ___
     (Ошибка при открытии журнального файла ___)
     Файл, который  был  указан  для  команды   Open   Log   File
локального меню, не может быть открыт. Либо для создания файла не
хватает места,  либо неверно указаны диск, маршрут директории или
имя  файла.  Либо  освободите  некоторое  пространство  на диске,
удалив часть файлов,  либо правильно задайте диск,  маршрут и имя
файла.

     Error reading block into memory
     (Ошибка при считывании блока в память)
     Блок, который  был  задан,  не  может быть считан из файла в
память. Возможно, вы указали количество байтов, которое превышает
реальное количество байтов в файле.

     Error recording keystroke macros
     (Ошибка при записи клавишного макроса)
     Ошибка произошла  во  время записи клавишного макроса в файл
конфигурации. Скорее всего макрос не был записан на диск.

     Error saving configuration
     (Ошибка при сохранении конфигурации)
     Turbo Debugger не  смог  сохранить  конфигурацию  на  диске.
Убедитесь  в  том,  что  на  диске  имеется  некоторое  свободное
пространство.

     Error swapping in user program, press key to reload
     (Ошибка при "подкачке" программы с диска, нажмите клавишу,
      чтобы перезагрузить программу)

     После "сброса" вашей программы на диск для выполнения другой
программы,   которую   вы   указали,   Turbo  Debugger  не  может
перезагрузить вашу программу. Это, скорее всего, означает, что вы
случайно  стерли  дисковый  файл,  в  которыыый  была  "сброшена"
программа (SWAPP.$$$).  Единственное, что может сделать отладчик,
это  перезагрузить  вашу  программу  точно  так  же,  как если бы
выполнили команду меню File/ Open.

     Error writing block to disk
     (Ошибка при записи блока на диск)
     Блок, который вы указали,  не может быть записан в  заданный
файл.   Возможно,   размер   блока  превышает  размер  свободного
пространства на диске.

     Error writing log file
     (Ошибка записи файла журнала)
     Заданный блок  не  может  быть  записан  в  заданный   файл.
Возможно, вы задали размер,  превышающий размер свободной области
на диске.

     Error writing to file
     (Ошибка при записи в файл)
     Turbo Debugger не может сохранить внесенные вами изменения в
дисковом  файле.  Возможно  файл помечен как "только для чтения",
либо в процессе записи произошла аппаратная ошибка.

     Expression accesses more then one scope
     (Выражение обращается более чем к одной области действия)
     В сочетании с точкой останова вы ввели выражение, содержащее
обращения  к переменным,  находящимся в разных областях действия.
Работая на Паскале, вы можете обращаться к локальным переменным и
параметрам,   глобальным   и   локальным  переменным  из  внешней
подпрограммы  (если  точка  останова   находится   во   вложенной
процедуре  или  функции).  Работая на Си,  вы можете обращаться к
автоматическим переменным функции,  статическим переменным модуля
и   глобальным  переменным  программы,  но  не  к  автоматическим
переменным из более чем одной функции.

     Expression too complex
     (Выражение слишком сложное)
     Вы задали слишком сложное выражение;  вам необходимо  ввести
выражение с меньшим количеством операций и операндов. В выражении
может быть  до  64  операций  и  операндов.  Примерами  операндов
являются имена констант и переменных. Примерами операций являются
сложение (+),  присваивание (= или :=),  выбор элемента структуры
(->) и принадлежность множеству (in).

     Expression with side effects not permitted
     (Выражения с побочными эффектами не допускаются)
     Вы ввели  выражение,  при вычислении которого модифицируется
область памяти. Такого рода выражения не допускается использовать
в  тех  случаях,  когда отладчику может потребоваться многократно
вычислять  значение  выражения,  например,  при  работе  в   окне
проверки или слежения.

     Extra input after expression
     (Лишние входные данные после выражения)
     Вы ввели  выражение,  которое  является  допустимым,  однако
после этого выражения записан дополнительный  текст.  Иногда  это
указывает   на  то,  что  в  выражении  пропущен  знак  операции.
Например, вместо

     3 * 4 + 5 2

     должно было быть записано

     3 * 4 + 5 / 2

     Или вместо

     add ax,4 5

     должно было быть записано

     add ax,45

     Также возможно,  что  ввели  число,  используя   для   этого
недопустимый для   текущего  языка  синтаксис,  например,  0xF000
вместо 0F000h в ассемблерном режиме.

     Help file ___ not found
     (Файл подсказки ___ не найден)
     Вы запросили подсказку,  однако  дисковый  файл,  содержащий
текст подсказки,  не может быть найден. Убедитесь в том, что файл
подсказки  находится  в  той  же  директории,  что  и   программа
отладчика.

     Illegal procedure or function call
     (Неверный вызов процедуры или функции)
     Вы попыталисб  выполнить  функцию  в  то  время,  когда  это
невозможно. Зто бывает при следующих обстоятельствах:

     - Вы  пытаетесь  вызвать  функцию,  находящуюся  в   оверлее
Паскаля.

     - Вы пытаетесь вызвать функцию,  находясь в оверлее Паскаля.

     - Вы  пытаетесь вызвать правило объектного Паскаля,  которое
было удалено из кода интеллектуальным компоновщиком Turbo Pascal.

     Immediate operand out of range
     (Промежуточный операнд выходит за границы диапазона)
     Вы ввели команду,  в которой используется  операнд  размером
один   байт  в  сочетании  с  промежуточным  операндом,  значение
которого не может поместиться в одном байте.
     Например, вместо

     add BYTE PTR[bx],300

     должно было быть записано:

     add WORD PTR[bx],300

     Initialization not complete
     (Инициализация не завершена)
     Вы попытались обратиться к переменной своей программе прежде
чем сегмент данных был соответствующим образом  установлен  кодом
инициализации, сформированным компилятором. Прежде чем обращаться
к большинству переменных программы,  до начала  исходного  текста
должен быть выполнен код инициализации.

     Invalid argument list
     (Недопустимый список параметров)
     Введенное вами   выражение   содержит  вызов  процедуры  или
функции,  для которой  задан  неправильно  сформированный  список
параметров.  Список  параметров  должен  начинаться с открывающей
круглой скобки, содержать ноль или большее количество разделенных
запятыми   выражений,   определяющих  параметры  подпрограммы,  и
заканчиваться закрывающей круглой скобкой. Обратите внимание, что
для   вызова   процедур  и  функций  языка  Паскаль,  не  имеющих
параметров, Turbo Debugger требует написания пустых скобок.
     Например, вместо

     myfunc(1,2 3)

     должно было быть записано:

     myfunc(1,2,3) или

     myfunc()


     Invalid character constant
     (Недопустимая символьная константа)
     Введенное вами выражение содержит неправильно сформированную
символьную  константу.  Символьная  константа  должна состоять из
одиночной кавычки ('),  за которой следует один символ и еще одна
одиночная кавычка. Например, вместо

     'A = 'a'

     должно было быть записано:

     'A' = 'a'

     Invalid far address
     (Недопустимый дальний адрес)
     При вводе  команды,  которую  требуется сассемблировать,  вы
задали  неверно  сформированный  дальний  адрес  назначения   для
команды  JMP  или  CALL.  Дальний  адрес  должен состоять из пары
шестнадцатиричных чисел, разделенных двоеточием. Например, вместо

     JMP 1234:XYZ

     должно было быть записано:

     JMP 1234:1000

     Invalid format string
     (Недопустимая строка формата)
     Вы ввели строку  формата  после  выражения,  однако  она  не
является допустимой строкой формата. Строки формата рассмотрены в
главе 9.

     Invalid function parameter
     (Недопустимый параметр функции)
     Вы пытались вызвать  функцию  в  выражении,  но  неправильно
задали параметры для этой функции.

     Invalid instruction
     (Недопустимая команда)
     Вы ввели    для   ассемблирования   команду   с   правильным
мнемонический обозначением, но недопустимым операндом. Обычно это
происходит при попытке сассемблировать команду POP CS.

     Invalid instruction mnemonic
     (Недопустимое мнемоническое обозначение команды)
     При вводе   команды   для   ассемблирования  вы  ошиблись  в
написании  мнемонического  обозначения  команды.  Команда  должна
состоять   из   мнемонического   обозначения   и   необязательных
аргументов. Например, вместо

     AX,123

     должно было быть записано:

     MOV ax,123

     Invalid operand separator
     (Неверный разделитель операндов)
     Вы ввели команду для ассемблирования,  однако  не  разделили
операнды  запятой.  Если в команде имеется более одного операнда,
между ними всегда должна стоять запятая. Например, вместо

     ADD ax 12

     должно было быть записано:

     ADD ax,12

     Invalid operand(s)
     (Недопустимый(е) операнд(ы))
     Команда, которую вы пытались сассемблировать  содержит  один
или   несколько   операндов,   которые   являются  недопустимыми.
Например,  команда MOV  не  может  иметь  два  операнда,  которые
обращаются к памяти,  некоторые команды можно использовать только
с операндами размером в одно слово.
     Например, вместо

     POP al

     должно было быть записано:

     POP ax

     Invalid operator/data combination
     (Недопустимое сочетание операции/данных)
     Вы ввели  выражение,  в  котором  для  операции  задан такой
операнд,  над которым данная операция не  может  быть  выполнена;
например,   попытка   умножить  константу  на  адрес  функции  из
отлаживаемой программы.

     Invalid pass count entered
     (Введено недопустимое количество проходов)
     Вы ввели количество проходов для точки останова,  которое не
находится в диапазоне от 1 до 65535. Не допускается устанавливать
количество проходов равным 0.  При  работе  программы  количество
проходов,  равное  1,  означает,  что  точку  останова  требуется
включать при первом ее проходе.

     Invalid register
     (Недопустимый регистр)
     В ассемблируемой  команде  задан  недопустимый   регистр   с
плавающей точкой.  Обозначение регистра с плавающей точкой должно
состоять из букв ST,  за которыми в круглых скобках может  стоять
число от 0 до 7, например, ST, ST(4).

     Invalid register combination in addreess expression
     (Недопустимая комбинация регистров в адресном выражении)
     При вводе  команды  для  ассемблирования  вы задали операнд,
который не содержит  одну  из  допустимых  комбинаций  базовых  и
индексных регистров.  Адресное выражение должно содержать базовый
регистр, индексный регистр, либо один из них. Базовыми регистрами
являются  BX  и BP,  а индексными явлются регистры SI и DI.  Ниже
приведены примеры допустимых комбинаций регистров.

     BX  BX+SI
     BP  BP+SI
     DI  BX+DI
     SI  BP+DI

     Invalid register in address espression
     (Недопустимый регистр в адресном выражении)
     Вы ввели  команду для ассемблирования,  в которой в адресном
выражении между квадратными скобками стоит  недопустимый регистр.
В  адресных выражениях можно использовать только регистры BX, BP,
SI и DI.

     Invalid symbol in operand
     (Недопустимый символ в операнде)
     При вводе  команды  для  ассемблирования  вы  начали  запись
операнда  с  символа,  который  никогда  не может стоять в начале
операнда, например, двоеточие.

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

     (x *)p

     следует записать как

     (struct x *)p

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

     Longint(p)

     или

     Word(p^)

     Invalid value entered
     (Недопустимое введенное значение)
     При запросе  адреса  памяти  вы  ввели  значение с плавающей
точкой вместо целого значения.

     Keyword not a symbol
     (Ключевое слово не является обозначением)
     (Только для Си и ассемблера) Введенное вами  выражение языка
Си  содержит  ключевое  слово там,  где требуется имя переменной.
Ключевые   слова   можно   использовать   только   в    операциях
преобразования типа,  за исключением специальной операции sizeof.
Например, вместо

     floatval = char charval

     должно было быть записано:

     floatval = (char)charval

     Left side not a record, structure or union
     (Левая часть  выражения не является записью,  структурой или
объединением)
     Вы ввели  выражение, в  котором используются селекторы элемента
структуры языка  Си (.  или ->)  или определитель  поля записи языка
Паскаль (.).  Однако, перед этим символом не стоит ни имя записи или
структуры, ни указателя на запись или структуру.

     No coprocessor or emulator installed
     (Ни сопроцессор, ни эмулятор не установлен)
     Вы пытались вызвать  окно  числового  процессора  с  помощью
команды View/Numeric Processor главного меню, однако либо в вашей
машине  не  установлен  числовой  процессор,  либо   отлаживаемая
программа не использует программный эмулятор.

     No hardware debugging avaliable
     (Аппаратная отладка недоступна)
     Вы попытались   установить   точку   останова,  для  которой
требуется   поддержка   аппаратной   отладки,   однако    драйвер
аппаратного  отладчика  не  установлен.  Это  сообщение об ошибке
также выдается в том случае,  если драйвер аппаратного  отладчика
не может найти нужные ему аппаратные средства.

     No help for this context
     (Для данного контекста подсказка отсутствует)
     Вы нажали  клавишу F1 для получения подсказки,  однако Turbo
Debugger  не  может  найти   соответствующий   текст   подсказки.
Пожалуйста, сообщите об этом в службу технической поддержки фирмы
Borland.

     No modules with line number information
     (Нет модулей с информацией о номерах строк)
     Вы использовали команду View/Module,  однако Turbo  Debugger
не   может   найти  ни  одного  модуля,  содержащего  необходимую
отладочную информацию,  чтобы  разрешить  вам  просмотр  исходных
текстов  модулей.  Это  сообщение  обычно  выдается  при  отладке
программы,  не имеющей таблицы обозначений.  Для получения  более
подробной информации о таблицах обозначений обратитесь к описанию
сообщения "Program has no symbol table", приведенному ниже.

     No previos search expression
     (Искомое выражение не было задано)
     Вы попытались выполнить команду Next локального меню подокна
Text,  однако  вы  предварительно не выполнили команду Search для
задания  искомого  выражения.  Команду  Next  можно  использовать
только  после  того,  как  в каком-либо подокне выполнена команда
Search.

     No program loaded
     (Программа не загружена)
     Вы попытались  выполнить  команду,  для  которой   требуется
предварительная  загрузка  программы.  Имеется большое количество
команд,  которые могут быть выполнены только в том  случае,  если
программа  загружена.  Например,  ни  одна  из  команд  меню Run,
вызываемого из главного меню,  не может быть выполнена,  если  не
была  загружена  программа.  Прежде  чем  выполнять  эти команды,
загрузите программу с помощью команды File/Open.

     No source file for module___
     (Отсутствует исходный файл для модуля ___)
     Для модуля, который вы хотите просмотреть, отладчик не может
найти  исходный  файл.  Если исходный файл находится не в текущей
директории,  необходимо  использовать  команду  Options/Path  for
Source  для  указания  директории,  в  которой находятся исходные
файлы.

     No type information for this symbol
     (Нет информации о типе для данного обозначения)
     Вы ввели  выражение,   которое   содержит   имя   переменной
программы,  для  которой  отсутствует отладочная информация.  Это
может произойти,  если переменная находится в модуле, который был
скомпилирован  без формирования правильной отладочной информации.
Вы можете задать тип  переменной,  записав  перед  ней  выражение
преобразования   типа,   которое   будет   определять   тип  этой
переменной.

     Not a function name
     (Не имя функции)
     Вы ввели выражение,  содержащее вызов функции,  однако  имя,
записанное   перед   открывающей   круглой  скобкой,  с  которого
начинается вызов функции,  не является именем  функции.  Если  за
некоторым   именем   сразу   же   стоит   скобка,  это  выражение
рассматривается как вызов функции.

     Not a memory referencing espression
     (Выражение не содержит обращений к памяти)
     Вы ввели выражение,  которое не обращается к области памяти.
Имеется  много  случаев,  когда  выражение  должно  обращаться  к
области памяти,  а не только возвращать значение.  Например,  для
команды   Expression/Inspect   главного   меню  требуется,  чтобы
проверяемый элемент данных являлся областью памяти,  а не  просто
выражением, имеющим некоторый результат.
     Например, выражение

     3 * 4 < (9 -1)

     не обращается к памяти, а выражение

     myarray[4]

     обращается к области памяти.

     Not an Object Pascal or C++ program
     (Это не программа на С++ или объектном Паскале)
     Ваша программа  написана   не   на   С++   или   объекто   -
ориентированном  Паскале  и не содержит объектов;  следовательно,
выбранная вами команда не может быть выполнена.

     Not a record, structure, or union member
     (Не элемент записи, структуры или объединения)
     Вы ввели  выражение,  в   котором   используется   один   из
селекторов   элемента   структуры   языка   Си  (.  или  ->)  или
определитель поля записи языка Паскаль (.).  Однако перед  данным
обозначением  не стоит ни имя структуры или записи,  ни указатель
на структуру или запись.

     Not enough memory for seleced operation
     (Не хватает памяти для выбранной операции)
     Вы задали команду,  для  которой  необходимо  создать  окно,
однако  для  нового  окна  не  осталось  достаточного  количества
памяти.  Прежде чем выполнить эту команду,  вы должны удалить ряд
окон или уменьшить их размеры.

     Not enough memory to load program
     (Не хватает памяти для загрузки программы)
     Таблица обозначений вашей программы была успешно загружена в
память,  однако для загрузки самой программы в памяти не осталось
места.  Если  в  вашем компьютере имеется расширенная память типа
EMS, убедитесь в том, что отладчик настроен на использование этой
памяти  для  загрузки  таблицы  обозначений.  Для  того чтобы это
сделать,  надо использовать параметр  -se  командной  строки  или
установить его постоянно с помощью программы TDINST.

     Если в компьютере нет расширенной памяти,  либо программа не
загружается  даже  при  наличии  расширенной  памяти,  вы  можете
соединить  вместе  два  компьютера  и запустить Turbo Debugger на
одном из них, а программу, которую требуется отладить, на другом.
Чтобы узнать,  как это сделать,  обратитесь к приложению E.  Либо
рассмотрите отладку в защищенном  режиме  при  помощи  TD286  или
виртуальную отладку  при помощи TD386.  Это описано в главах 15 и
16.

     Not enough memory to load symbol table
     (Не хватает памяти для загрузки таблицы обозначений)
     Недостаточно места  для  того,  чтобы  загрузить  в   память
таблицу обозначений вашей программы. Таблица обозначений содержит
информацию,  которую Turbo Debugger использует для отображения на
экране  исходного  текста  и переменных программы.  Если в памяти
находятся  какие-либо  резидентные  программы,  выгрузите  их  из
памяти,  а  затем  еще  раз запустите отладчик.  Попробуйте также
уменьшить  размер  таблицы   обозначений,   заставив   компилятор
формировать отладочную информацию только для тех модулей, которые
вас интересуют для отладки.  Когда выдается это  сообщение,  сама
программа еще не загружена в память.  Это означает, что вы должны
освободить память для загрузки таблицы обозначений и программы. В
случае  использования  TD386  параметр -f заставит TD эмулировать
расширенную память. Подробности см. в главе 15.

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

     Only one operand size allowed
     (Допускается только один размер операнда)
     Вы ввели команду  для  ассемблирования,  в  которой  имеется
более одного указателя размера.  После того, как вы задали размер
операнда, вы не можете изменить его. Например, вместо

     mov WORD PTR BYTE PTR[bx],1

     должно было быть записано:

     mov BYTE PTR[bx],1

     Operand must be memory location
     (Операнд должен являться ячейкой памяти)
     Вы ввели выражение,  содержащее подвыражение, которое должно
обращаться  к области памяти,  однако не делает этого.  Примерами
операций,  для которых  требуется  обращение  к  памяти  являются
операции присваивания (=,  += и т.д.) и операции положительного и
отрицательного приращения (++ и --).

     Operand size unknown
     (Неизвестен размер операнда)
     Вы ввели команду для ассемблирования,  но не указали  размер
операнда. Некоторые команды, выполняющие действия над байтами или
словами  требуют,  чтобы  был  указан  размер,  если  его  нельзя
установить из самих операндов.

     Например, вместо

     add [bx],1

     должно было быть записано:

     add BYTE PTR[bx],1

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

     Path not found
     (Маршрут не найден)
     Вы ввели  комбинацию  диска   и   директории,   которой   не
существует.  Проверьте,  правильно  ли указан диск и правильно ли
записано имя директории.

     Path or file not found
     (Маршрут или файл не найден)
     Вы задали несуществующее или неверное имя файла в  ответ  на
запрос ввести файл для загрузки.  Если вы не знаете точного имени
файла,  который хотите  загрузить,  вы  можете  выбрать  файл  из
списка,  нажав  клавишу  Enter  при  первом  появлении запроса на
экране.  Имена в списке,  заканчивающиеся  обратным  слешем  (\),
означают   директории   и   позволяют   перемещаться   по  дереву
директорий, просматривая списки содержащихся в них файлов.

     Program has invalid symbol table
     (Программа имеет недопустимую таблицу обозначений)
     Таблица обозначений,  присоединенная   к   программе,   была
запорчена. Заново создайте файл типа EXE и перезагрузите его.

     Program has no symbol table
     (Программа не имеет таблицы обозначений)
     Программа, которую  вы собираетесь отлаживать,  была успешно
загружена,  однако  она  не  содержит   никакой   информации   об
обозначениях,  необходимой  для  отладки.  Несмотря  на  это,  вы
сможете выполнять программу в пошаговом  режиме,  используя  окно
процессора  и  построчно  проверяя  данные,  однако вы не сможете
обращаться к коду или данным по именам.

     Чтобы создать  таблицу  обозначений  в  языке  Turbo  Pascal
(версии  5.0  или  более  поздней)  включите  режим  формирования
информации  для  отладки  с  помощью   команды   Debug/Standalone
Debugging (или с помощью параметра /v командной строки при работе
с компилятором TPC.EXE).  Если вы используете компилятор Turbo  C
или   Turbo   С++,  то  для  формирования  отладочной  информации
компилировать и компоновать (TLINK) программу нужно с опциями -v.
В случае Turbo Assembler, для того, чтобы сформировать отладочную
информацию,  вы должны ассемблировать программу с  опцией  -zi  и
скомпоновать  программу  с помощью компоновщика TLINK,  используя
опцию /v.

     Program linked with wrong linker version
     (Программа скомпонована с помощью неверной версии компоновщика)
     Вы пытались  отладить   программу,   содержащую   устаревшую
отладочную  информацию.  Перекомпонуйте  свою программу с помощью
последней версии компоновщика или перекомпилируйте ее  с  помощью
последней версии компилятора Turbo Pascal.

     Program not found
     (Программа не найдена)
     Программы с  указанным  именем  не существует.  Либо введите
правильное имя, либо выберите программу из списка файлов.

     Register cannot be used as negative address
     (Регистр не может использоваться в качестве отрицательного
     адреса)
     Вы ввели  команду для ассемблирования,  в которой попытались
использовать   базовый   или   индексный   регистр   в   качестве
отрицательного  смещения.  Базовые  и  индексные  регистры  можно
использовать только для задания положительного смещения.
     Например, вместо

     INC WORD PTR[12-BX]

     должно было быть записано:

     INC WORD PTR[12+BX]

     Register or displacement expected
     (Требуется регистр или смещение)
     Вы ввели   команду  для  ассемблирования,  которая  содержит
неправильно сформированное выражение,  стоящее между  квадратными
скобками.  Между  квадратными  скобками могут стоять только имена
регистров и постоянные значения смещения,  которые задают базу  и
индекс.

     Repeat count not allowed
     (Количество повторений не допустимо)
     Вы ввели  строку управления форматом,  содержащую количество
повторений,  однако выражение,  к которому вы ее  применяете,  не
допускает использования количества повторений.

     Run out of space for keystroke macros
     (Клавишный макрос выходит за допустимые границы)
     Макрос, который   вы   записываете,  выходит  за  допустимые
границы.  Для всех макросов вы можете  записать  до  256  нажатий
клавиш.

     Search expression not found
     (Искомое выражение не найдено)
     Текст или  байты,  которые  вы  указали,  не найдены.  Поиск
начинается с текущего положения в файле,  указанного курсором,  и
осуществляется   в   направлении  конца  файла.  Если  вы  хотите
выполнить поиск по всему файлу,  то прежде  чем  вводить  команду
поиска нажмите клавиши Ctrl-PgUp.

     Source file ___ not found
     (Исходный файл ___ не найден)
     Turbo Debugger  не  может  найти  исходный  файл для модуля,
который вы хотите проверить.  Прежде чем  выдать  это  сообщение,
отладчик ищет файл в следующих местах:

     -  там, где его находил компилятор;

     - в директориях,  заданных с помощью параметра -sd командной
строки и команды Options/Path for Source;

     -  в текущей директории;

     - в директории,  в которой Turbo Debugger нашел отлаживаемую
программу.

     Директорию, содержащую исходный файл,  необходимо добавить в
список просматриваемых директорий с помощью  команды Options/Path
for Source.

     Symbol not found
     (Обозначение не найдено)
     Вы ввели выражение,  содержащее недопустимое имя переменной.
Возможно,  вы допустили ошибку при  написании  имени  переменной,
либо  она описана внутри некоторой процедуры или функции, которая
не является активной,  либо  находится  вне  области  действия  в
другом модуле.

     Symbol table file not found
     (Файл таблицы символических имен не найден)
     Заданный вами файл таблицы символических имен не существует.
Такой файл может иметь расширения либо .TDS, либо .EXE.

     Syntax error
     (Синтаксическая ошибка)
     Вы ввели  выражение  в  неверном  формате.   Это   сообщение
выдается  в  том  случае,  когда не могут быть использованы более
конкретные сообщения об ошибках.

     Too many files match wildcard mask
     (Слишком много файлов соответствуют метасимвольной маске)
     Вы задали метасимвольную маску файла,  которой соответствует
более  100  файлов.  На экране будут отображены только первые 100
файлов.

     Type EXIT to return to Turbo Debugger
     (Для возврата в Turbo Debugger введите команду EXIT)
     Вы выполнили   команду   File/DOS   Shell.   Это   сообщение
информирует вас о том, что когда вы выполните нужные команды DOS,
вы должны ввести команду EXIT, чтобы возобновить сеанс отладки.


     Unexpected end of line
     (Неожиданный конец строки)
     При вычислении   значения   выражения  конец  выражения  был
обнаружен до того,  как  было  распознано  допустимое  выражение.
Например, вместо

     99 - 22 *

     должно было быть записано:

     99 - 22 * 4

     а вместо

     SUB AX,

     должно было быть записано:

     SUB AX,4

     Unknown character
     (Неизвестный символ)
     Вы ввели  выражение,  содержащее символ,  который никогда не
может использоваться в выражениях,  например,  обратная одиночная
кавычка (`) в языке Си.

     Unknown record or structure name
     (Неизвестное имя записи или структуры)
     Вы ввели   выражение,   содержащее  преобразование  типа,  с
неизвестным   именем   записи,   структуры,    объединения    или
перечисления.  (Заметим,  что  структуры в языках Си и ассемблера
имеют свою собственную область имен, отличную от переменных.)

     Unknown symbol
     (Неизвестное обозначение)
     Вы ввели выражение,  содержащее недопустимое  имя  локальной
переменной. Либо имя модуля является недопустимым, либо локальное
имя или номер строки записаны неверно.

     Unterminated string
     (Незавершенная строка)
     Вы ввели  строку,  которая  не   заканчивается   закрывающей
кавычкой  (*  в Си,  ' в Паскале).  Если вы хотите ввести строку,
содержающую   кавычки,   в   Паскале   она    должны    содержать
дополнительные кавычки.  Чтобы ввести строку, содержащую кавычкы,
в языке Си необходимо поставить перед кавычкой обратный слеш (\).

     Value must be between 1 and 32
     (Значение должно лежать в диапазоне от 1 до 32)
     Вы ввели недопустимое  значение  ширины  табуляции.  Символы
табуляции должны располагаться как минимум через 1 столбец,  и не
дальше чем через 32 столбца.

     Value out of range
     (Значение вне диапазона)
     Вы ввели значение переменной Паскаля,  лежащее вне диапазона
допустимых для этой переменной значений.

     Video mode not available
     (Видеорежим не поддерживается)
     Вы попытались  переключить  монитор  в режим 43/50-строчного
отображения,  однако ваш дисплейный адаптер не поддерживает  этот
режим.  Режим  43/50-строчного  отображения поддерживается только
адаптерами EGA и VGA.

     Video mode switched while flipping pages
     (Во время листания страниц сменился видео- режим)
     Ваша программа изменила видео- режим  дисплея,  когда  Turbo
Debugger находился  в  режиме  "листания"  страниц.  Это означает
вероятную потерю экранной информации вашей программы.  Для  того,
чтобы избежать   этой   ошибки,  вам  следует  включить  параметр
командной  строки    -ds,    устанавливающий    режим    свопинга
видеоизображения.

Информационные сообщения
-----------------------------------------------------------------

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

     TDREMOTE online
     (Программа TDREMOTE подключена)
     Turbo Debugger успешно установил связь с драйвером удаленной
отладки  TDREMOTE,  загруженном  на  удаленной  системе.  Если вы
указали в командной строке DOS имя программы,  которую  требуется
загрузить,  этот  файл  теперь  начнет  загружаться  на  удаленну
систему.

     Waiting for handshake from TDREMOTE (Ctrl-Break to quit)
     (Ожидание подтверждения связи от TDREMOTE (Для выхода нажмите
      клавиши Ctrl-Break))
     Вы сообщили   отладчику   Turbo  Debugger,  что  собираетесь
отлаживать свою  программу  на  удаленной  системе,  подключенной
через  последовательный порт (параметры -r,  -rs и - rp командной
строки).  Теперь отладчик ждет,  когда удаленная система передаст
ему информацию о том, что она работает.

     Вы можете   прервать   работу  отладчика  Turbo  Debugger  и
вернуться в DOS, нажав комбинацию клавиш Ctrl-Break.



Яндекс цитирования