Это информация о том, какие части готового .exe относятся к каким строкам исходного кода. Если генерация отладочной информации включена - её сохраняет (вместе с самим исходником) в .pdb файл рядом с .exe .
Такая информация используется в основном исключениями:
type
MyException = class(Exception) end;
procedure p2 :=
raise new MyException;
procedure p1 := p2;
begin
try
p1;
except
on e: MyException do
Writeln(e);
end;
readln;
end.
Если запустить это с отладкой - выведет список всех вызванных подпрограмм в момент вызова raise. Если отключить отладку и запустить по Shift+F9 - тоже выведет список всех подпрограмм, но при этом строчки в исходнике рядом с ними писать уже не будет.
Строчка ошибки очень помогает ловить баги, но немного замедляет выполнении, поэтому в Release версия (или когда тестируют скорость выполнения) отладку обычно отключают.
P.S. У меня ещё и не выводит список подпрограмм в режиме без отладочной информации, потому что p1 и p2 - маленькие подпрограммы и поэтому их инлайнит. То есть заменяет их вызов на их содержимое.
И ещё, если включить отладку (F8) - галочка на отладочной информации ставиться сама, потому что без неё невозможно отлаживать.
Если я правильно понимаю - оболочка это то, во что оборачивает программу если запускать из IDE. То есть, к примеру, оболочка ответственна за выдачу сообщения после окончания выполнения “Программа завершена, нажмите любую клавишу”. Правда, у меня его почему то не выдаёт.
И в целом, это уже больше говорит чем переведённый вариант)) Наверное использует .dll версию PABCSystem, чтоб не перекомпилировать его каждый раз при запуске из IDE. Ну, сейчас подробнее посмотрю.
Ну, почти. Вот. Rtl это сразу все стандартные модули, скомпилированные в виде .dll . Если их не компилировать при каждом запуске - запускать таки значительно быстрее.
Вот только я почему то не вижу чтоб эта опция где то использовалась дальше в компиляторе… Но ускорение таки заметно. OpenGL перекомпилировать - сек 5. С этой опцией программы с OpenGL запускаются моментально.
Библиотеки это .dll . Rtl каким ставиться вместе с паскалем и уже не перекомпилируется, никогда.
А модули перекомпилировать - надо чтоб засунуть их в .exe . Если модули в .exe не засунет - .exe не запустится на компе где нет Rtl.
А вообще я сейчас посмотрел - .dll Rtl-а не существует в папке компилятора. То есть её вообще не ставит. Наверное, та галочка - какая то недоделанная фича.
И с OpenGL-ом больше потестил - то был единичный случай. В целом с галочкой и без - примерно одинаковое время компиляции.