ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 24 Приложение D. Подсказки и сообщения об ошибках Турбо отладчик TDW выводит сообщения об ошибках и подсказки в текущей позиции курсора. В данном приложении описываются генерируемые Турбо отладчиком TDW подсказки и сообщения об ошибках. Мы расскажем вам о том, как нужно отвечать на сообщения об ошибках и подсказки. Список сообщений (включая сообщения о сбоях при инициализации) и подсказок приведен в алфавитном порядке и с соответствующим описаниями. Подсказки в диалоговых окнах Турбо отладчик TDW выводит подсказку, когда от вас требуется ввод дополнительной информации (для выполнения команды). В заголовке подсказки описывается, какая информация требуется. В содержимом может выводиться протокол (предыдущие ответы, которые вы ра нее давали в ответ на подсказку). Отвечать на подсказку можно одним из следующих способов: - наберите ответ и нажмите клавишу Enter; - нажмите Esc для отмены подсказки и возврата в предшествующее меню. В некоторых подсказках возможен только выбор между двумя элементами (типа Да/Нет). Для выбора нужного элемента можно использовать клавиши управления курсором (стрелки), а затем нажать Enter, или непосредственно ввести ответ - Y (Да) или N (Нет) - и нажат ь клавишу Enter. Отменить команду можно с помощью клавиши Esc. Более подробно действие клавиш при подсказке описывается в Главе 2. Перечислим подсказки в алфавитном порядке: Device error - Retry? (Ошибка устройства, повторить?) Произошла ошибка при записи на символьное устройство (например, на принтер). Это может быть вызвано тем, что принтер не подключен, выключен, или на нем нет бумаги. Исправьте ситуацию и ответьте Y (при этом операция будет повторена) или N (для отмены опер ации). Disk error on drive___ - Retry? (Ошибка диска, повторить?) При обращении к указанному диску произошла ошибка. Возможно в дисковод не вставлен гибкий диск, или запорчена область винчестера. Если поможет повтор операции, ответьте Y (Да). Для отмены нажмите N. Edit watch expression (Редактирование выражения просмотра) Модифицируйте или замените выражение просмотра. Подсказка инициализируется текущим (подсвеченным) выражением просмотра. Enter adress, count, byte value (Введите адрес, счетчик, байтовое значение) Введите адрес блока памяти, которому вы хотите присвоить конкретное байтовое значение, затем число байт, которым нужно присвоить это значение и само значение-заполнитель. Enter adress 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 (Введите комментарий для включение в конец протокола регистрации) Введите произвольную строку текста, которая будет добавлена к сообщениям, выведенным в окне Log (Регистрация). Текст будет выведен в том виде, как вы его наберете. Enter expression for conditional breakpoint (Введите выражение для условной точки останова) Введите выражение, которое должно принимать истинное (ненулевое) значение для срабатывания точки останова. При выполнении программы данное выражение будет вычисляться каждый раз при обнаружении точки останова. При этом нужно учитывать возможные побочные эффекты вычисления выражения. Enter expression to evaluate (Введите выражение для вычисления) Введите выражение, значение которого вы хотите вычислить. Значение и тип результата будут выводиться в окне типа ошибки, которое исчезает при нажатии следующей клавиши. Enter expression to execute (Введите выражение для выполнения) Введите выражение, которое будет выполняться каждый раз, когда срабатывает точка останова. Чтобы это оказалось полезным, выражение должно иметь побочные эффекты (например, выполнение процедуры или функции программы или изменение значения переменной). Enter expression to evaluate (Введите выражение для регистрации) Введите выражение, значение которого вы хотите знать. Значение и тип результата будут выводиться в окне типа ошибки, которое исчезнет при следующем нажатии клавиши. Enter expression to watch (Введите выражение для просмотра) Введите имя переменной или выражение, значение которого вы хотите наблюдать в окне Watch (Просмотр). Если хотите, можете ввести выражение, которое не ссылается на ячейку памяти, например x * y + 4. Если диалоговое окно инициализируется из текстовой облас ти, то вы можете воспринять запись, нажав клавишу Enter, либо изменить ее или ввести что-то совсем другое. Enter inspect start index, range (Введите первый индекс для проверки, диапазон) Введите индекс первого элемента массива, который вы хотите просмотреть. За индексом укажите число просматриваемых элементов массива (разделив их пробелом или запятой). Enter instruction to assemble (Введите инструкцию для ассемблирования) Введите инструкцию Ассемблера для замены инструкции по текущему адресу в области кода. Список инструкций и ключевых слов Ассемблера содержится в одном из приложений. Более подробно о языке Ассемблера рассказывается в Главе 12. Enter log file name (Введите имя файла регистрации) Введите имя файла, в который вы хотите записывать регистрируемую информацию. Все строки регистрации в том виде, как они выводятся в соответствующем окне, будут записываться в указанный файл до выполнения команды Close (Закрыть). По умолчанию файл будет и меть расширение .LOG и имя, совпадающее с именем отлаживаемой программы. Для этого можно просто нажать клавишу Enter. В противном случае наберите новое имя. Enter memory adress (Введите адрес в памяти) Введите один адрес в памяти. Можно использовать имя идентификатора или полное выражение. Enter memory adress, count (Введите адрес в памяти, счетчик) Введите один адрес в памяти, за которым следуют необязательные запятая и число элементов. Можно использовать имя идентификатора или полное выражение. Enter name оf configuration file (Введите имя файла конфигурации) Введите имя файла конфигурации для чтения или записи. При чтении из файла можно вводить трафатетные символы (маску) и получить список соответствующих им файлов для выбора. Enter name of file to view (Введите имя файла для просмотра) Для получения списка файлов для выбора можно использовать трафаретные символы DOS (* и ?), либо ввести для загрузки имя конкретного файла. Enter new bytes (Введите новые байты) Введите список байт, которые заменят байты в позиции файла, отмеченной курсором. Полное описание списка байт содержится в Главе 9. Enter a new coprocessor register value (Введите новое значение регистра сопроцессора) Введите новое значение для текущего (подсвеченного) регистра арифметического сопроцессора. Для генерации нового значения можно ввести полное выражение. Оно будет преобразовано в правильный формат с плавающей точкой и загружено в регистр. Enter new data bytes (Введите новые байты данных) Введите байтовый список в позиции сегмента, отмеченнйо курсором. Полное описание списка байт содержится в Главе 9. Enter new directory (Введите новый каталог) Введите новое имя каталога или диска, которые должны стать текущими. Enter new file offset (Введите новое смещение в файле) Вы просматриваете файл на диске в шестнадцатиричном виде. Если вы вводите номер строки, превышающий число строк в файле, то увидите последнюю строку в файле. Строки нумеруются с 1. Текущий номер строки, где расположен курсор, соответствует первой строке в окне Module (Модуль). 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 (Поиск) области данных). Enter search string (Введите строку для поиска) Введите символьную строку для поиска. Для выявления неточных соответствий можно использовать простые трафаретные символы (* - один или более символов, ? - один символ). Enter source address, destination, count (Введите исходный, целевой адрес и значение счетчика) Введите адрес блока, который вы хотите переместить, число перемещаемых байт и адрес, куда их нужно переместить. Все три выражения разделяются запятыми. Enter source directory path (Введите список каталогов исходных файлов) Введите список каталогов, разделив их точками с запятой. Поиск исходных файлов в этих каталогах будет выполняться в том порядке, как они указаны. Enter symbol table name (Введите имя таблицы идентификаторов) Введите имя таблицы идентификаторов для загрузки ее с диска. Обычно эти файлы имеют расширение .TDS. Расширение имени файла нужно указывать явно. Enter tab column spacing (Введите размер табуляции) Введите число от 1 до 32, которое задает позицию табуляции при выводе Турбо отладчиком TDW файлов в окне File (Файл) или Module (Модуль). Enter valiable to inspect (Введите переменную для проверки) Введите имя переменной или выражение, содержимое которого вы хотите проверить. Если подсказка инициализирует из области текста, то вы можете использовать выведенное имя, нажав клавишу Enter, или полностью набрать новую запись. Enter write file name (Введите имя файла для записи) Введите имя файла, в которых вы хотите записать блок памяти. Overwrite__? (Затереть?) Вы задали имя файла, который уже существует. Вы можете затереть старое содержимое этого файла, заменив его новым, либо отменить данную команду и оставить старое содержимое без изменений. Overwrite existing macro or selected key? (Перезаписать существующую макрокоманду или выбранную клавишу?) Вы нажали клавишу для записи макрокоманды, а ей уже присвоена макрокоманда. Если вы хотите отменить существующую макрокоманду, нажмите Y (Да). Для отмены команды нажмите N (Нет). Pick a method name (Выбор имени метода) Вы задали имя подпрограммы, которая ссылается более чем на один метод в объекте. Выберите корректный метод из списка имен. Pick a module (Выбрать модуль) Выберите имя модуля, который вы хотите просмотреть в окне 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 (Нет) она перезагружена не будет, и выполнять ее нельзя. Reload program so arguments take effect? (Перезагрузить программу с сохранением аргументов командной строки?) Вы изменили для отлаживаемой программы аргументы командной строки. Если вы ответите положительно, ваша программа перезагрузится и вернется в началу. Обычно это желательно делать после изменения аргументов, так как программы, написанные с использованием к омпиляторов фирмы Borland, считывают аргументы только один раз при загрузке программы. Все последующие изменения аргументов не окажут влияния на программу, пока вы ее не перезапустите. Ошибки Турбо отладчик TDW использует сообщения об ошибках, чтобы сообщить вам о непредвиденных ситуациях. Иногда введенная вами команда не может быть обработана, в других случаях сообщение уведомляет вас, что что-то происходит не так, как вы ожидаете. Обычно вывод сообщений об ошибке сопровождается звуковым сигналом. Вы можете выключить его, используя командную строку при запуске Турбо отладчика TDW, или сделать это с помощью программы установки TDWINST. Фатальные ошибки Все фатальные ошибки приводят к выходу из отладчика и возврату в Windows. Некоторые такие ошибки являются результатом запуска отладчика TDW из командной строки. В других случаях они могут возникать при появлении неисправимых ситуаций в системе во время и спользования отладчика. В любом случае ситуацию можно исправить только устранением причины сбоя и перезапуском отладчика TDW. Bad configuration file (Плохой файл конфигурации) Файл конфигурации либо запорчен, либо не является файлом конфигурации Турбо отладчика TDW, либо относится к его другой версии. Invalid switch:___ (Недопустимый параметр) В командной строке вы указали недопустимый параметр-переключатель. Список всех возможных параметров содержится в соответствующем приложении, а подробно о них рассказывается в одной из глав данного руководства. Not enough memory (Недостаточно памяти) Турбо отладчик TDW при обработке вашей команды превысил границы рабочей памяти. Old configuration file (Старый файл конфигурации) Вы пытаетесь запустить Турбо отладчик TDW с файлом конфигурации из предыдущей версии. Для данной версии Турбо отладчика нужно создать новый файл конфигурации. Unsupported video adapter (Неподдерживаемый тип видеоадаптера) Турбо отладчик TDW не может определить, какой тип видеоадаптера вы используете. Поддерживаются следующие типы адаптеров: MDA, CGA, EGA, VGA, MCGA, Hercules, Compaq composite, AT&T и совместимые с ними. Сообщения об ошибках ')' expected (Нужна закрывающая круглая скобка ')') При вычислении выражения обнаружено, что пропущена закрывающая скобка. ':' expected (Нужно двоеточие) При вычислении выражения языка Си был обнаружен символ ?, разделяющий первые два выражения тернарной операции ?:, однако соответствующего двоеточия не найдено. Например: x < 0 ? 4 6 Следует записать: x < 0 ? 4 : 6 ']' expected (Нужна закрывающая квадратная скобка ']') При вычисления выражения была обнаружена открывающая квадратная скобка индексного выражения массива без соответствующей закрывающей скобки. Например: table[4 а должно быть: table[4] Эта ошибка может возникать также при вводе инструкций встроенного Ассемблера (когда в скобках при обращении к памяти указывается базовый или индексный регистр, а соответствующая правая скобка отсутствует). Например: mov ax,4[si а должно быть: mov ax,4[si] Already logging to a file (Файл регистрации уже открыт) Вы дали команду Open log file при уже открытом файле регистрации, который не был еще закрыт командой Close log file. Если вы хотите открыть другой файл регистрации, закройте сначала текущий. Ambiguous symbol name (Двусмысленное имя идентификатора) Вы ввели в выражении имя идентификатора, которое не идентифицирует уникальным образом метод в языке в программе Паскаля. При этом вы не выбираете из списка корректное имя. Перед вычислением выражения вам нужно выбрать корректное имя из выводимого списка. Assigment out of range (Присваивание вне диапазона) При выполнения присваивания Паскаля вы пытаетесь присвоить переменной значение, выходящее за пределы диапазона допустимых значений этой переменной. Bad configuration file name (Неверное имя файла конфигурации) В параметре командной строки -с при запуске Турбо отладчика TDW вы задали неверное имя файла конфигурации. Cannot be changed (Этот идентификатор изменить нельзя) Вы пытаетесь изменить идентификатор, который изменить нельзя. Непосредственно изменять можно только скаляры (типы int, long и т.д. в языке Си, integer, longint и строки в Паскале) и указатели. Если вы хотите изменит структуру или массив, нужно изменять к аждый их элемент отдельно. Can't have more than one segment override (Нельзя иметь более одного переопределения сегмента) Вы пытаетесь ассемблировать инструкцию, оба операнда которой содержат переопределения сегментов. Переопределение сегмента может иметь только один операнд. Can't set a breakpoint at this address (По этому адресу нельзя задать точку останова) Вы пытаетесь установить точку останова в области ПЗУ, в несуществующей памяти или в сегменте 0. Просмотреть программу, выполняющуюся в ПЗУ, можно только с помощью команды RunіTrace (ВыполнениеіТрассировка) и отработке инструкций по шагам. Can't use same register twice (Нельзя дважды использовать один регистр) Вы пытаетесь ассемблировать инструкцию, которая использует базовый или индексный регистр дважды в одном операнде в памяти. Регистр можно использовать только один раз. Например: mov ax,[bx+bx] неверно, следует использовать: mov ax,[bx+si] Can't access an inactive scope (Нельзя обратиться к неактивной области действия) Вы ввели выражение или сослались в окне Module (Модуль) на переменную, которой нет в активной функции. Переменные в неактивных функциях имеют неопределенные значения, поэтому вы не можете использовать их в выражениях или просматривать их значения. Constructors and destructors cannot be called (Вызов конструкторов и деструкторов не допускается) Если вы пытаетесь отлаживать программу, которая использует эти объекты, то выводится сообщение об ошибке. Возможно вы пытаетесь вычислить метод объекта, являющийся конструктором или деструктором. Это не допускается. Ctlr-Alt-SysRq interrupt. System crash possible. Continue? (Прерывание по Ctrl-Alt-Sysrq. Возможен сбой системы. Продолжить?) Вы пытаетесь выйти из TDW или перезагрузить свою прикладную программу во время приостановки программы по нажатию клавиш Ctrl-Alt-SysRq. Поскольку в момент приостановки программы выполнялся код ядра Windows, выход из TDW или перезагрузка прикладной програ ммы будет иметь непредсказуемые результаты (наиболее вероятно "зависание" системы, после чего потребуется последующая перезагрузка). Если это возможно, установите в программе точку останова, которая приведет к выходу в TDW, а затем снова запустите вашу программу. Когда программа обнаруживает точку останова и выходит в TDW, вы можете завершить работу TDW или перезагрузить программу. Destination too far away (Целевой адрес слишком далеко) Вы пытаетесь ассемблировать инструкцию условного перехода, целевой адрес которой отстоит слишком далеко от текущего адреса. Целевой адрес инструкции условного перехода должен находиться в пределах -128 и +127 байт от самой инструкции. Divide by zero (Деление на 0) В выражениях с операциями деления (/, div) или операциями mod и % правая часть выражения при вычислении становится равной 0. Поскольку в этом случае операции будут иметь неопределенное значение, выводится сообщение об ошибке. Error loading program (Ошибка при загрузке программы) Невозможно загрузить заданную программу. Это может означать, что заданный вами файл не является допустимым файлом .EXE, или что он запорчен. Error opening file___ (Ошибка при открытии файла) Турбо отладчик TDW не может открыть файл, который вы хотите просмотреть в окне File (Файл). Error opening log file___ (Ошибка открытия файла регистации) Имя файла, указанное в команде локального меню Log To File (Файл регистрации) открыть нельзя. Это может означать, что не хватает места для создания файла, либо диск, маршрут доступа или имя файла являются недопустимыми. Освободите место на диске или зада йте правильную спецификацию (корректную буквенную метку диска, маршрут и имя файла). Error reading block into memory (Ошибка при считывании блока в память) Заданный блок нельзя считать из файла в память. Воможно вы указали счетчик байт, значение которого превышает число байт в файле. Error recording keystroke macros (Ошибка при записи клавиатурной макрокоманды) Произошла ошибка при записи клавиатурной макрокоманды в файл конфигурации. Вероятно макрокоманда не записана на диск. Error saving configuration (Ошибка при сохранении конфигурации) Турбо отладчик не может записать на диск файл конфигурации. Убедитесь, что на диске есть свободное место. Error swaping in user program, press key to load (Ошибка при свопинге программы пользователя, для загрузки нажмите клавишу) После свопинга (сброса) вашей программы на диск, чтобы выполнить другую программу, Турбо отладчик не может перезагрудить ваша программу. Вероятнее всего это означает, что вы случайно удалили на диске файл свопинга (SWAP.$$$). Единственное, что может сдел ать отладчик - это перезагрузить программу (как при использовании команды FileіOpen (ФайліОткрыть)). Error writing block on disk (Ошибка записи блока на диск) Заданный вами блок нельзы записать в заданный файл. Возможно вы определили счетчик, значение которого превышает имеющийся на диске объем свободного пространства. Error writing log file (Ошибка при записи файла регистрации) Произошла ошибка при накоплении информации из окна регистрации. Вероятно, ваш диск переполнен. Error writing block to file (Ошибка записи блока в файл) Турбо отладчик TDW не может записать изменения обратно в файл. Возможно файл помечен, как доступный только по чтению, или при записи на диск произошла ошибка. Expression accesses more than one scope (В выражении имеется обращение к нескольким областям действия) В связи с заданием точки останова вы ввели выражение, содержащее ссылки на переменные из нескольких областей действия. В Паскале можно обращаться к локальным переменным и параметрам, глобальным или локальным переменным внешней подпрограммы (если точка ос танова содержится во вложенной процедуре или фунации). В языке Паскаль можно ссылаться на локальные переменные и параметры, глобальные переменные и локальные переменные охватывающей программы (если точка останова находится во вложенной процедуре или функ ции). Expression too complex (Слишком сложное выражение) Указанное вами выражение слишком сложно. Нужно задать выражение с меньшим числом операндов и операций. Оно может содержать до 64 операций и операторов. Операндами могут быть, например, константы или имена переменных. Примерами операций являются операции плюс (+), присваивания (= или :=), выбор элемента структуры (->) и вхожление в множество (in). Expressions with side effects not permitted (Выражения с побочными эффектами не допускаются) Вы ввели выражение, которое модифицирует ячейку памяти при его вычислении. Когда Турбо отладчику TDW требуется повторно вычислять выражение (например, когда он находится в окне Instructor (Проверка) или Watches (Просмотр)), такой тип выражений использова ть нельзя. Extra input after expression (Лишние данные после выражения) Вы ввели допустимое выражение, но после него содержится лишний текст. Иногда это показывает, что в выражении пропущена операция. Например, введено: 3 * 4 + 5 2 а нужно ввести: 3 * 4 + 5 / 2 или add ax,4 5 а нужно записать: add ax,45 Help file ___ not found (Не найден справочный файл) Вы запросили вывод справочной информации, но отладчик TDW не может найти на диске файл, ее содержащий. Убедитесь, что этот файл находится в том же каталоге, что и программа отладчика. Illegal procedure or function call (Недопустимая процедура или вызов функции) Вы пытаетесь вычислить функцию в то время, когда не можете этого сделать. Это может произойти в следующих случаях: - вы пытаетесь вызвать функцию, которая находится в оверлее Паскаля; - вы пытаетесь вызвать функцию, в то время как текущий адрес программы находится в оверлее Паскаля; - вы пытаетесь вызвать метод объектно-ориентированного Паскаля, который удален эффективным компоновщиком Паскаля; Immediate operand out of range (Выход за границы диапазона непосредственного операнда) Вы ввели инструкцию в байтовым операндом в сочетании с непосредственным операндом, превышающим байт. Например: add BYTE PTR[bx],300 Следует записать: add WORD PTR[bx],300 Initialization not complete (Инициализация не завершена) В программе вы пытаетесь обратиться к переменной до того, как сегмент данных будет соответствующим образом настроен кодом инициализации компилятора. Вы должны обеспечить выполнение до начала исходного кода программы кода инициализации компилятора, и толь ко после этого можно обращаться к большинству переменных. Invalid argument list (Недопустимый список аргументов) Введенное вами выражение содержит вызов процедуры или функции, в котором не сформирован должным образом список аргументов. Список аргументов начинается с левой скобки, содержит 0 или более разделенных запятыми выражений, и заканчивается правой скобкой. З аметим, что при вызове процедуры или функции Турбо Паскаля без параметров нужно указывать пустые скобки. Например: myfunc(1,2 3) а должно быть: myfunc(1,2,3) или myfunc() Invalid character constant (Недопустимая символьная константа) Введенное вами выражение содержит неправильно сформированную символьную константу. Символьная константа содержит одинарную кавычку (') за которой следует один символ, и завершается другой одинарной кавычкой. 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 (Неверный разделитель между операндами) Вы ввели инструкцию для ассемблирования, но не разделили операнды запятыми. Если инструкция содержит несколько операндов, между ними должна указываться запятая. Invalid operand(s) (Недопустимые операнды) Инструкция, которую вы пытаетесь ассемблировать, содержит один или более недопустимых операндов. Например, в инструкции MOV не допускается указывать два операнда со ссылкой на память, в некоторые инструкции работают только с операндами размером в слово. Например: POP a1 а нужно: POP ax Invalid operator/data combination (Недопустимое сочетание операция/данные) Вы ввели выражение, в котором в операции указан операнд, над которым нельзя выполнить данную операцию. Например, делается попытка умножить константу на адрес функции в вашей программе. Invalid pass count entered (Введен недопустимый счетчик проходов) Вы ввели для точки останова счетчик проходов, который не находится в диапазоне от 1 до 65535. Значение счетчика не может быть равно 0. Если при выполнении программы значение счетчика равно 1, то данная точка останова сработает при ее первом обнаружении. Invalid register (Недопустимый регистр) В ассемблируемой инструкции вы указали недопустимый регистр с плавающей точкой. Регистр с плавающей точкой состоит из букв, за которыми следует необязательное число от 0 до 7 в круглых скобках, например ST, ST(4). Invalid register combination in address expression (Недопустимое сочетание регистров в адресном выражении) При вводе инструкции для ассемблирования вы указали операнд, который не содержит одно из допустимых сочетаний базового и индексного регистра. Адресное выражение может содержать базовый регистр, индексный регистр, или и тот, и другой. Базовыми могут быть регистры BX и BP, а индексными - SI и DI. Допускаются следующие их сочетания: BX BX+SI BP BP+SI DI BX+DI SI BP+DI Invalid register in address expression (Недопустимый регистр в адресном выражении) Вы ввели для ассемблирования инструкцию, в которой в адресном выражении в квадратных скобках используется недопустимый регистр. В адресных выражениях можно использовать только регистры BX, BP, SI и DI. Invalid symbol in operand (Недопустимый символ в операнде) При вводе инструкции для ассемблирования вы начали операнд с символа, с которого не может начинаться операнд (например, :). Invalid typecast (Недопустимое приведение типа) Вы ввели выражение, которое содержит некорректно формируемое приведение типа. Корректное назначение типа в языке Паскаль начинается с известного типа данных, левой (открывающей) скобки, выражения и заканчивается правой (закрывающей) скобкой. Например: LongInt(p) или Word(p^) Invalid value entered (Введено недопустимое выражение) При запросе ввода адреса памяти вы ввели вместо целочисленного значения значение с плавающей точкой. Invalid window handle (Недопустимый описатель окна) Пытаясь задать в программе регистрацию сообщений, вы ввели имя переменной-описателя, для которого описатель не присваивался. Запустите свою программу после оператора, в котором присваивается значение переменной-описателю, затем попытайтесь ввести это имя снова. Keyword not a symbol (Это ключевое слово, а не идентификатор) Введенное выражение содержит ключевое слово там, где требуется указывать имя переменной. Ключевые слова допускается указывать только в операции приведения типа (за исключением специальной операции sizeof). Например: floatval = char charval а следует записать: floatval = char (charval) Left side not a structure or union (Левая часть не является структурой или объдинением) Вы ввели выражение, содержащее квалификатор записи Паскаля (.). Однако перед этим идентификатором не указано имя записи и не содержится указатель на запись. No coprocessor or emulator installed (Сопроцессор или эмулятор не установлены) Вы пытаетесь с помощью команды основного меню ViewіNumeric Processor (ОбзоріАрифметический сопроцессор) открыть окно Numeric processor (Арифметический сопроцессор), но плата арифметического сопроцессора в вашей системе не установлена, а отлаживаемая прог рамма не использует программный эмулятор. No hardware debugging avaliable (Средства аппаратной отладки недоступны) Вы пытаетесь установить точку останова, для которой требуется аппаратная поддержка, но драйвер устройства для аппаратной отладки не установлен (либо драйвер не может найти необходимые аппаратные средства). No help for this context (Для этого контекста справочной информации нет) Вы нажали клавишу F1 для получения справочной информации, но Турбо отладчик TDW не может найти соответствующий справочный экран. Сообщите об этом, пожалуйста, фирме Borland. No modules with line number information (Нет модулей с информацией о номерах строк) Вы использовали команду ViewіModule (ОбзоріМодуль), но Турбо отладчик TDW не может найти модули с достаточной информацией для отладки, чтобы вы могли просматривать исходные модули. Обычно это сообщение выводится при отладке программы, не содержащей табли цы идентификаторов. См. сообщение "Рrogram has no symbol tables". No previous search expression (Нет предыдущего выражения для поиска) Вы пытаетесь выполнить из локального меню области текста команду Next (Следующий), но перед этим вы не давали команду Search (Поиск) для задания того, что вы ищете. Команду Next можно давать только после команды Search. No program loaded (Программа не загружена) Вы пытаетесь ввести команду, для выполнения которой требуется, чтобы программа была загружена. Таких команд много. Например, ни одна из команд меню Run (Выполнение) не может выполняться без загрузки программы. Для загрузки программы используйте команду F ileіOpen (ФайліОткрытие). No source file for module___ (Нет исходных файлов для модуля) Для модуля, который вы хотите просмотреть, невозможно найти исходный файл. Если исходный файл не содержится в текущем каталоге, используйте команду OptionsіCode Directories (ПараметрыіКаталоги исходного кода), чтобы задать, в каком каталоге находятся ваш и исходные файлы. No type information for this symbol (Для этого идентификатора нет информации о типе) Вы ввели выражение, содержащее имя переменной программы, для которой нет соответствующей отладочной информации. Это может произойти, когда переменная находится в модуле, скомпилированном без корректной отладочной информации. Чтобы указать тип данных, вы можете задать информацию о типе перед именем переменной (с помощью выражения назначения типа). Not a function name (Не является именем фукнции) Вы ввели выражение, которое содержит вызов функции, но имя перед круглой скобкой не является именем функции (каждый раз, когда за именем открывается круглая скобка, подразумевается, что это имя функции). Not a memory referensing expression (Не является выражение со ссылкой на память) Вы ввели выражение, которое не ссылается на ячейку памяти. Имеется много случаев, в которых выражение должно ссылаться на ячейку памяти, а не просто возвращать значение. Например, команда основного меню ExpressionіInspect (ВыражениеіПроверка) требует, чт обы проверяемый элемент данных представлял собой область памяти. Not a memory referensing expression (Выражение не является ссылкой на память) Вы ввели выражение, которое не ссылается на ячейку памяти. Существует много ситуаций, в которых выражение должно представлять собой ссылку на память, а не просто значение. Например, команда Dataі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 selected operation (Для выбранной операции не хватает памяти) Вы дали команду, для которой требуется создание окна, но для этого не хватает памяти. Перед тем, как повторно давать команду, нужно сначала удалить или уменьшить размер некоторых окон. Not enogh memory to load program (Не хватает памяти для загрузки программы) Недостаточно места для загрузки в память таблицы идентификаторов. Таблица идентификаторов содержит информацию, которую TDW использует для вывода исходного кода и переменных программы. Если у вам имеются какие-либо резидентные программы, для которых испол ьзуется память, следует удалить их и перезапустить TDW, вы можете также уменьшить объем таблицы идентификаторов, указав компилятору, что отладочную информацию нужно генерировать только для интересующих вас модулей. Когда выводится это сообщение, сама ваша программа еще не загружена. Перед тем, как загрузить ее, нужно освободить достаточно памяти для таблицы итдентификаторов. Only one operand size allowed (Допускается только один указатель размера операнда) Вы ввели для ассемблирования инструкцию, в которой содержится более одного указателя размера. Задав размер операнда, вы не можете его изменить, например: mov WORD PTR BYTE PTR [bx],1 cледует записать: mov BYTE PRT [bx],1 Operand must be memory location (Операнд должен быть ячейкой в памяти) Вы ввели выражение, содержащее подвыражение, которое должно ссылаться на ячейку памяти, но не делает этого. Ссылка на память должны присутствовать в операциях присваивания (=, += и т.д.) и операциях уменьшения и увеличения (++ и --). Operand size unknown (Размер операнда неизвестен) Вы ввели для ассемблирования инструкцию, но не задали размер операнда. Некоторые инструкции могут работать только с байтами или словами и требуют от вас задания размера (когда размер нельзя определить по виду операндов). Например, вместо: add [bx],1 следует записать: add BYTE PTR [bx],1 Path not found (Маршрут не найден) Вы ввели несуществующее сочетание дисковода и каталогов. Проверьте, задали ли вы правильную метку диска, и корректно ли указаны имена каталогов. Path or file not found (Маршрут или файл не найден) При ответе на подсказку для ввода имени файла для загрузки вы задали несуществующий файл или недопустимый маршрут. Если вы не знаете точного имени файла, который требуется загрузить, его можно выбрать из списка, нажав в ответ на подсказку клавишу Enter. Имена в списке, которые заканчиваются обратной косой чертой (\) - это каталоги, позволяющие вам перемещаться по дереву каталогов. Program has invalid symbol table (Программа содержит неверную таблицу идентификаторов) Программа, которую вы хотите отладить, успешно загружена в память, но не содержит никакой информации об идентификаторах для отладки. Program has no symbol table (Программа не содержит таблицу идентификаторов) Программа, которую вы хотите отладить, успешно загружена в память, но не содержит никакой информации об идентификаторах для отладки. Вы сможете выполнять программу по шагам с помощью окна ЦП и просматривать непосредственные данные, но не сможете ссылатьс я на код или данные по имени. Для создания таблицы идентификаторов в Паскале для Windows сделайте следующее: 1. Выберите команду OptionsіCompiler (ПараметрыіКомпилятор) и проверьте переключатель Debug Information (Информация для отладки). 2. Выберите команду OptionsіLinker (ПараметрыіКомпоновщик) и установите переключатель Debug Info in EXE (Отладочная информация в файле EXE). 3. Чтобы сохранить установленные параметры, выберите команду OptionsіSave (ПараметрыіСохранение). 4. Перекомпилируйте модули программы. Если вы используете компилятор TPCW, перекомпилируйте программу с параметром /v. Program linked with wrong linker version (Для компоновки программы использована неверная версия компоновщика) Вы пытаетесь отладить программу с отладочной информации в устаревшем формате. Перекомпонуйте программу с использованием последней версии компоновщика или скомпилируйте ее с помощью Турбо Паскаля для Windows. Program not found (Программа не найдена) Программа с заданным вами именем не существует. Укажите правильное имя программы или выберите его из списка Register cannot be used with this operator (Регистр не может использоваться в данной операции) Вы ввели инструкцию Ассемблера, в которой делается попытка использовать базовый или индексный регистр, как отрицательное смещение. Базовый или индексный регистр можно использовать только как положительное смещение. Например: INC WORD PTR[12-BX] недопустимо, правильным будет выражение: INC WORD PTR[12+BX] Register or displacement expected (Требуется регистр или смещение) Вы ввели для ассемблирования инструкцию, в которой неверно сформировано выражение в квадратных скобках. В скобках для формирования базово-индексного операнда можно помещать только имена регистров или значения смещений (константы). Repeat count not allowed (Счетчик повторения недопустим) Вы ввели строку управления форматом, которая содержит счетчик повторения, но выражение, к которому вы ее применяете, не может иметь счетчика повторения. Run out of space for reystroke macros (Исчерпана область для клавиатурных макрокоманд) При записи макрокоманжы исчерпано пространство. Для всех клавиатурных макрокоманд можно записать до 256 нажатий клавиш. Search expression not found (Выражение для поиска не найдено) Невозможно найти текст или байты, которые вы задали. Поиск начинается с текущего места в файле (которое определяется позицией курсора) и продолжается по направлению к концу файла. Если вы хотите выполнить поиск по всему файлу, перед выполнением следующей команды нажмите клавиши Ctrl-PgUp. Source file ___ not found (Исходный файл не найден) Турбо отладчик TDW не может найти исходный файл для модуля, который вы хотите проверить. Перед тем, как вывести такое сообщение, он ищет исходные файлы в следующих местах: - там, где их ищет компилятор; - в каталогах, заданных с помощью параметра командной строки -sd и команды OptionsіPath for Source (ПараметрыіМаршрут поиска исходных файлов); - в текущем каталоге; - в каталоге, где Турбо отладчик TDW находит отлаживаемую программу. Вы должны с помощью команды OptionsіPath for Source (ПараметрыіМаршрут поиска исходных файлов) добавить к списку поиска каталоги, содержащие исходный файл. Symbol not found (Не найден идентификатор) Вы ввели выражение, содержащее недопустимое имя переменной. Возможно допущена ошибка при вводе имени переменной, или вы находитесь вне активной процедуры (функции), либо в другом модуле за пределами области действия. Symbol table not found (Не найдена таблица идентификаторов) Заданный вами файл таблицы идентификаторов не существует. Вы можете задавать файлы с расширениями .TDS или .EXE. Syntax error (Синтаксическая ошибка) Вы ввели выражение в неверном формате. Если не выводится более конкретное сообщение, то это общее сообщение об ошибке. Too many files match wildcard mask (С трафаретной маской совпадает слишком много файлов) Вы задали трафаретную маску, которой соответствуют более 100 файлов. На экран можно вывести только первые 100 файлов. 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) Вы ввели недопустимое значение размера табуляции. Value out of range (Значение вне диапазона) Вы ввели значение переменной Паскаля, которое находится вне диапазона допустимых значений. Video mode not avaliable (Видеорежим недоступен) Вы пытаетесь переключиться в режим 43/50 строк, но ваш дисплейный адаптер не поддерживает такого режима (указанный режим можно использовать только на адаптерах EGA и VGA). |