madExcept обязательных директив компилятора

Я использую madExcept (не из IDE), но в автоматическом пакетном процессе.

Какие директивы компилятора я должен включить, чтобы иметь трассировку стека и номера строк. Меня не волнуют загруженные модули, процессы или регистры процессора.

Я в настоящее время бегаю с:

{$DEBUGINFO ON}
{$LOCALSYMBOLS ON}
{$REFERENCEINFO OFF}

Но хотелось бы удалить как можно больше "жира", но при этом сохранить номера строк.

2 ответа

Решение

Это ключевые настройки:

  • Отладочная информация (параметры компилятора) включена. Это гарантирует, что информация о номере строки генерируется. Если эта опция не включена, у вас не будет номеров строк, только байтовые смещения в каждой функции.
  • Отладочная информация (опции компоновщика) отключена. Это гарантирует, что исполняемый файл не содержит отладочную информацию.
  • Для параметра файла карты компоновщика установлено значение Подробно. Это гарантирует, что информация о номере строки передается в файл.map, который является информацией, используемой madExcept для преобразования адресов в имена модулей, имена методов, номера строк и т. Д.

Локальные символы и параметры справочной информации не влияют на отчеты об ошибках madExcept. Ни одна из указанных вами настроек не влияет на размер исполняемого файла.

Согласно безумному, кроме справочного файла, вы должны передать -gd переключитесь на компилятор командной строки, чтобы получить подробный файл карты. Не забудьте запустить madExceptPatch.exe инструмент после компиляции.

Когда вы включаете madexcept в параметрах проекта, он устанавливает следующие два параметра компилятора:

{$DEBUGINFO 1}
{$LOCALSYMBOLS ON}
Другие вопросы по тегам