Помилки компіляції.
У разі помилки компілятор відразу зупиняє роботу і виводить інформацію про помилку.
Процедури, в яких може виникнути помилка:
SetAddrRAM, DB, StartProgram, FINALCompiler, FillChar, ComA, ComB, ComC,
FillDB, FillDW, DW, FillDD, DD, FillDQ, DQ, DString255, SetAddrRAM2.
Винятком зі списку, тобто процедури, які ігноруються, є процедури, які не впливають на компіляцію самого коду КР-580: INITCompiler, SetfSaveLVT, SetfSE,SetCLU, SetfCLU, SetfSEi, SetFileOutError, SetfError, SetfErrorfCLU, SetErrorCLU, SetFileOutReportMD00, SetReportMD00TXTinFile.
Під час помилок компіляції звіт виводиться у файл (за замовчуванням "Error.txt")
або ж згідно з налаштуваннями процедурами SetfErrorTXTinFile, SetFileOutError,
SetfError, SetfErrorfCLU, SetErrorCLU.
Файл звіту про помилку має такий вигляд:
Для помилок з кодами 10 та 11:
MD01:
CodeError:=10
Command:=44
CurrentAddress:=0 ( $0000 )
RemStrERR:=ремарка 3
======================
ErrorLabel1.IDcode:=1
ErrorLabel1.Name:='Wrem'
ErrorLabel1.ErrorLabel1.NameStrUpCase:='WREM'
ErrorLabel1.Comment:=''
======================
Помилка в процедурі: LabelA* Повторна розмітка мітки.
Значення "CodeError:=10" означає код помилки, див. Коди помилок компіляції.
Значення "Command:=44" означає номер процедури в якій виникла помилка, див. Список усіх процедур та їх кодів.
Значення "CurrentAddress:=0", , - поточна адреса.
Значення "RemStrERR:= ремарка 3" означає (останню) ремарку зроблену користувачем ( у програмі було Rem(' ремарка 3'); ), до появи помилки компіляції.
======================
Значення мітки (TLabelLV), яка була задіяна в команді в якій виникла помилка.
Значення "ErrorLabel1.IDcode:=1" - ID-код мітки.
Значення "ErrorLabel1.Name:='Wrem'" - ім'я мітки.
Значення "ErrorLabel1.ErrorLabel1.NameStrUpCase:='WREM'"- ім'я мітки у верхньому регістрі.
Значення "ErrorLabel1.Comment:=''" - коментар мітки.
"Помилка в процедурі: LabelA" - Опис словами згідно з "Command:=44".
"* Повторна розмітка мітки." - Опис, пояснення словами, згідно "CodeError:=10".
Для помилок з кодами 12 -14:
MD01:
CodeError:=12
Command:=47
CurrentAddress:=0 ( $0000 )
RemStrERR:=ремарка 3
======================
ErrorLabel1.IDcode:=0
ErrorLabel1.Name:=''
ErrorLabel1.ErrorLabel1.NameStrUpCase:=''
ErrorLabel1.Comment:=''
======================
ErrorLabel2.IDcode:=0
ErrorLabel2.Name:='Неприпистимі символи'
ErrorLabel2.NameStrUpCase:='Неприпистимі символи'
ErrorLabel2.Comment:=''
======================
Помилка в процедурі: SetNameLabelLV* Неприпустиме ім`я мітки.
Роз'яснення полів помилки з кодами 12 - 14, аналогічне роз'ясненню полів помилки з кодами 10 -11. Різниця лише у додаткових полях ErrorLabel2. В даних помилках значення ErrorLabel1, це те значення, з яким мітка входила в процедуру, тобто в мітці вже було це значення, а ErrorLabel2 - це значення яке намагалася назначити процедура в який виникла помилка.
Дивіться також:
MADL2023 MD00
MD01. Вступ.
MD01. Процедури мнемонікою АСМ (КР580) в MADL
MD01. Процедури мнемонікою MADL в MADL
MD01. Процедури, функції їх коди та їх опис
Навігатор форуму