Страница 1 из 1

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

Добавлено: 02.01.25 13:34
БудДен

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

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

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

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

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

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

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

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