В трёх соснах (отладочная печать)

Только технические вопросы по ЯОС и MINOS. Терминология и прочее - в других форумах.
Ответить
БудДен
Сообщения: 2976
Зарегистрирован: 07.10.18 14:01

В трёх соснах (отладочная печать)

Сообщение БудДен » 02.01.25 13:34

Код: Выделить всё

к.ПишиЗаписьЛЯ
   typeDescAddress = НИЗКОУР.дайМетаданныеТипаВремениВыполнения
      МетаПечать.поПоАдрВКонтексте
         оит = АдресЗаписиИУМетаданныеТипаДляСборщикаМусораВRecordTypeDeclOffset(typeDescAddress)
         пЗапись,знаяОбъявлениеТипа(оит)
Против

Код: Выделить всё

пПеременную,принадлежащуюОбластиВидимости
  (обходим метаданные области видимости)
  пЗначение
    (разыменовываем косвенное)
    WriteRecord
       ИзСмещенияУМетаданныеТипаДляСборщикаМусораВСмещениеRecordTypeDecl
         hstb := УМетаданныеТипаДляСборщикаМусора.записьКРефлексииДляТипа
         оит := АдресЗаписиИУМетаданныеТипаДляСборщикаМусораВRecordTypeDeclOffset(hstb)
         пЗапись,знаяОбъявлениеТипа(оит)
А надо, чтобы ПишиЗаписьЛя вызывала пЗначение, а не напрямую пЗапись,знаяОбъявлениеТипа

БудДен
Сообщения: 2976
Зарегистрирован: 07.10.18 14:01

Re: В трёх соснах (отладочная печать)

Сообщение БудДен » 02.01.25 20:19

В итоге, пришлось расширить к.См, чтобы оно принимало также ссОбъявлениеТипа - иначе не выходило. Когда у нас есть дтУкль, у него нет записи Тип, т.е. может быть она и естЬ, но неясно, где её взять.

пЗначение начинало от записи Тип и переходил уже к объявлению типа. А в команду См. писалось смещение от записи Тип. Но если записи Тип нет, то пришлось адаптироваться и научить команду См и пЗначение использовать объявление типа, а не Тип.

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

Ответить