logo
TurboProlog / Документация / TOM_2

Нефатальные ошибки

TLINK имеет только две нефатальные ошибки. Выше уже отмечалось при

фатальной ошибке файлы .ЕХЕ и .МАР не стираются. Однако в среде разработ-

ки эти ошибки могут рассматриваться как фатальные. Ниже приведены сообще-

ния об ошибках.

ХХХ is unresolved on module YYY

На данное имя есть ссылка в заданном модуле, но оно не опреде-

лено в наборе объектных файлов и библиотек для компоновки. Про-

верьте написание имени и откорректируйте его.

Fixup overflow, frame=xxxxh, target=xxxxh, offset=xxxxh

in module XXXXXXXX

(ошибка переполнения, фрейм=ххххh, адресат=ххххh, смещение

=ххххh модуле XXXXXXXX)

Сообщается, что в объектном файле, который должен организовать

TLINK во время компоновки, неправильно даны ссылки на данные

или коды. В первой части сообщения объектный файл указывает имя

ячейки, на которую делается ссылка и имя сегмента, в котором

должна быть ячейка памяти. Значение фрейма представляет собой

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

нием объектного файла. Значение адресата является сегментом,

где действительно находится ячейка памяти.

Это сообщение наиболее часто вызывается несоответствием моделей па-

мяти в компиляторе Си. Наиболее вероятным в этом случае является внутри

сегментное обращение к функции в другом кодовом сегменте. Приведенная

ошибка может также произойти при генерации внутрисегментного обращения к

переменной, либо ссылке на функцию.

Для определения проблемы сгенерируйте карту с общими именами (/м).

Значение полей адресата и смещения в сообщении об ошибке должны быть ад-

ресом имени, на которое выполняется ссылка. Если поля адресата и смещения

не соответствуют имени в карте распределения памяти, посмотрите имя, бли-

жайшее к адресу, указываемому в сообщении. Ссылка находится в поименован-

ном модуле, поэтому ищите нарушение ссылки в исходном файле модуля.

Если приведенные приемы не помогут вам определить причину отказа,

либо, если вы программируете на ассемблере или некоторых других языках

высокого уровня, кроме Турбо Пролога, то видимо сообщение выдано по дру-

гим причинам.