Это была былинная попаболь, но я таки завершил переделывание всей кухни lineinfo с dwarf2 на stabs.
Поому что, как бы компактна ни была dwarf2, паскаль её явно поддерживает постольку поскольку, и на платформах, отличных от Intel-32, она генерируется через анус. А именно, покрытие диапазона адресов получается дырявое, как ковёр, поеденный молью. Особенно у модулей, которые состоят из 100500 инклюдов.
Для справки, парсер dwarf2 я заимствовал из фпц 2.4 и ниже (где она была штатной) и очень серьёзно доводил напильником (ибо без страшных хаков просто не работает). После моих багрепортов, похоже, разрабы поняли, что эту... массу лучше удавить, и парсер dwarf2 из RTL по тихому выкинули. А штатная lineinfo (-gl) использует, как раз, stabs.
А у меня острая аллергия на большие екзешники
![Evil or Very Mad :evil:](./images/smilies/icon_evil.gif)
, а усушке и утруске их подвергать нельзя, чтобы lineinfo не отключилась - оттуда и вся пляска с бубнами вокруг выселения отладочной информации во внешние файлы, до кучи пожатые TCompressionStream.
И вот после всего вышеописанного получается 350-килобайтный .exe, к которому прилагается 560-килобайтный .zstabs (625 / 380 К для ARM на Raspberry Pi 2)
Отладочную инфу я потом замету под ковёр (чтобы лежала с глаз долой в отдельной папочке) и останутся дистиллированные понты самых маленьких екзешников 21-го века
Ещё одна плюшка - в отличие от dwarf, stabs умеет названия функций
Добавлено спустя 6 часов 33 минуты 20 секунд:Полез собирать DLL игрового модуля под линуксами. Был шокирован, осознав, что нигде нет типового .sh на эту тему.
Полез в архивы - нету нигде, мать его! Даже за 15-й год. Даже за 13-й.
Дунул, плюнул, слабал.
Собралось.
Внезапно! оказалось, что екзешник не умеет подбирать DLL по имени под платформу!
Допилил.
Модуль загрузился, резво инициализировался... И упал на ровном месте, вылезло исключение при попытке распарсить бектрейс исключения.
И вот я теперь думаю, а в каком году я последний раз под линуксом DLL'ы проверял?
Закрадывается абсурдное ощущение, что ещё при Ельцине
![Mad :x](./images/smilies/icon_mad.gif)