madExcept обязательных директив компилятора
Я использую madExcept (не из IDE), но в автоматическом пакетном процессе.
Какие директивы компилятора я должен включить, чтобы иметь трассировку стека и номера строк. Меня не волнуют загруженные модули, процессы или регистры процессора.
Я в настоящее время бегаю с:
{$DEBUGINFO ON}
{$LOCALSYMBOLS ON}
{$REFERENCEINFO OFF}
Но хотелось бы удалить как можно больше "жира", но при этом сохранить номера строк.
2 ответа
Это ключевые настройки:
- Отладочная информация (параметры компилятора) включена. Это гарантирует, что информация о номере строки генерируется. Если эта опция не включена, у вас не будет номеров строк, только байтовые смещения в каждой функции.
- Отладочная информация (опции компоновщика) отключена. Это гарантирует, что исполняемый файл не содержит отладочную информацию.
- Для параметра файла карты компоновщика установлено значение Подробно. Это гарантирует, что информация о номере строки передается в файл.map, который является информацией, используемой madExcept для преобразования адресов в имена модулей, имена методов, номера строк и т. Д.
Локальные символы и параметры справочной информации не влияют на отчеты об ошибках madExcept. Ни одна из указанных вами настроек не влияет на размер исполняемого файла.
Согласно безумному, кроме справочного файла, вы должны передать -gd
переключитесь на компилятор командной строки, чтобы получить подробный файл карты. Не забудьте запустить madExceptPatch.exe
инструмент после компиляции.
Когда вы включаете madexcept в параметрах проекта, он устанавливает следующие два параметра компилятора:
{$DEBUGINFO 1}
{$LOCALSYMBOLS ON}