![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 643
|
![]()
Недавно открыл exe-шник программы через тестовый просмотр.
Я всегда думал, что все названия процедур и переменных - это чисто для человека, а компилятор их заменяет на адреса в памяти. А тут, внезапно, обнаруживаю в exe-шнике имена кучи процедур... И тут два вопроса: 1. Зачем это делается? Если процессору нужны адреса в памяти, а не имена 2. Можно ли как-то перенастроить компилятор, чтобы меньше мусора было в программе? |
![]() |
![]() |
![]() |
#2 | ||
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]() Цитата:
Цитата:
От этого механизма можно уйти, если выполнять линковку модулей в памяти вручную. А вот убрать из exe отладочную информацию, в которой тоже могут встречаться не только имена процедур, но и весь исходный код, можно. И даже нужно. Последний раз редактировалось macomics; 18.09.2022 в 16:02. |
||
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 643
|
![]() |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
Не совсем текст. Отладочная информация. Только строки, которые будут реально исполняться. Описания структур и классов скорее всего не будут включаться. Создайте пустой exe и посмотрите внутри. Если там есть секция .debug или как-то так, то в этой секции будет ваш код. Пустой нужен для того, чтобы было минимальное число дополнительных строк кода. Как минимум там должны быть строки из dpr файла.
ADD: Первые 512 байт это заголовок PE файла. В нем содержится много разной информации. В том числе и информация о секциях, которые содержаться в PE файле. Чтобы найти отладочную информацию - надо расшифровать описания секций в этом заголовке Последний раз редактировалось macomics; 18.09.2022 в 16:15. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 643
|
![]()
А как убрать эту информацию или exe-шника?
И это ж не отобразится на работоспособности? |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
В Release отладочная информация не включается компилятором. Отладочную информацию используют только отладчики для навигации по коду. На работоспособность программы она не влияет.
|
![]() |
![]() |
![]() |
#7 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,591
|
![]()
Ну если компилировать в Debug, то программа будет выполняться медленнее. В любом случае режим Debug исключительно на время разработки, готовую программу всегда надо компилировать в Release.
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
Потому что в Debug версию включается не только информация для отладчика, но еще и дополнительный код обработки ошибок. Когда собираете Release, то частично код изменяется. Убираются некоторые проверки на наличие ошибок.
|
![]() |
![]() |
![]() |
#9 | |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 643
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#10 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,591
|
![]()
Смотря на чем вы пишете.
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
В файле записаны данные о результатах сдачи экзамена. Вывести в другой файл фамилии и имена тех учеников, которые получили больше 80 баллов. | Вася195 | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 27.10.2016 13:21 |
Ввести два файла F1, F2. Найти максимальные значения в каждом файле. В каждом файле заменить компоненты | qwerty2106 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 07.06.2015 22:11 |
список процедур в DCU файле | iliili | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 29.06.2011 20:38 |
одновременное выполнение разных процедур в одном файле? | gramp | Microsoft Office Excel | 15 | 25.03.2011 12:15 |
Поиск данных в текстовом файле (в самом файле! а не в Memo и не загружая всю инфу из файла в одну строку | glagoff | Помощь студентам | 1 | 05.05.2010 13:00 |