Табл. 1.20. Отключение оптимизаций и встраивания из командной строки
| Инструментарии |
Оптимизация |
Встраивание |
| GCC |
-O0 |
-fno-inline¹ |
| Visual C++ Intel (Windows) |
-Od |
-Ob0 |
| Intel (Linux) |
-O0 |
-Ob0 |
|
-opt off |
-inline off |
| Comeau (Unix) |
-O0 |
--no_inlining |
| Comeau (Windows) |
To же, что и у основного компилятора, но вместо тире (-) используется слеш (/) |
|
| Borland |
-Od |
-vi- |
| Digital Mars |
-o+none -S |
-C |
¹ Эту опцию указывать не требуется, если не была указана опция -O3.
Табл. 1.21. Опции командной строки для включения отладочной информации
| Инструментарии |
Опции компилятора |
Опции компоновщика |
| Comeau (Unix) GCC |
-g |
-g |
| Intel (Linux) Metrowerks |
|
|
| Visual C++ Intel (Windows) |
См. табл. 1.22 |
См. табл. 1 22 |
| Comeau (Windows) |
To же, что и у основного компилятора, но вместо тире (-) используется слеш (/) |
То же, что и у основного компилятора, но вместо тире (-) используется слеш (/) |
| Borland |
-v |
-v |
| Digital Mars |
-g |
-co |
Табл. 1.22. Включение отладочной информации при использовании Visual C++ или Intel для Windows
| Опции компилятора |
Опции компоновщика |
IDE options¹ |
Описание |
| -Z7 |
-debug |
C7 Compatible (совместимость с C7) |
Отладочная информация сохраняется в файлах .obj и .exe |
| -Zi [-Fd]. |
-debug[-pdb:] |
Program Database (база данных программы) |
Отладочная информация сохраняется в файлах .pdb ; опция в квадратных скобках используется для указания файлов .pdb |
| -Zi [-Fd] |
-debug [-pdb:] |
Program Database for Edit & Continue (база данных программы для редактирования и продолжения) |
Отладочная информация сохраняется в файлах . pdb ; опция в квадратных скобках используется для указания файлов .pdb . Программа может быть перекомпилирована во время сессии отладки |
¹ Чтобы получить доступ к этим опциям, перейдите к Configuration Properties→С/С++→ General→Debug Information Format (формат отладочной информации).
BoostBuild предоставляет похожий механизм создания отладочной сборки: просто добавьте к требованиям цели debugили используйте опцию командной строки variant=debug , которую можно сократить до просто debug .
Некоторые IDE также предоставляют простой способ создания отладочной сборки. Например, при создании нового проекта в Visual C++ IDE автоматически генерирует конфигурации для отладочной и окончательной сборок. Чтобы запросить отладочную сборку, просто выберите в меню Build опцию Configuration Manager и в качестве активной выберите конфигурацию Debug. Также можно выбрать Debug в раскрывающемся списке конфигураций на стандартной панели инструментов. При следующей сборке проекта будет создана отладочная сборка.
Аналогично при создании проекта в CodeWarrior с помощью одного из шаблонов проектов Metrowerks, называемых «принадлежности» ( stationery ), IDE автоматически генерирует отладочную и окончательную цели. Имя отладочной цели может быть разным, но оно всегда должно включать слово «debug». Чтобы запросить отладочную сборку, в меню Project выберите пункт Set Default Target (установить цель по умолчанию), а затем выберите элемент меню, соответствующий отладочной цели. Также можно выбрать отладочную цель в раскрывающемся списке целей в окне проекта.
C++Builder не поддерживает множественных конфигураций для одного проекта, но он предоставляет простой способ создания отладочной сборки. Чтобы запросить отладочную сборку, перейдите в Project Options→Compiler и нажмите на Full debug (полная отладка). Это отключит все оптимизации и встраивание и включит отладочную информацию.
При использовании IDE, которая не предоставляет готовых отладочной и окончательной конфигураций, такой как Dev-C++, или если вам требуется получить дополнительный контроль над параметрами проекта, обратитесь к таблицам с 1.23 до 1.25.
Табл. 1.23. Отключение оптимизаций из IDE
| IDE |
Конфигурация |
| Visual C++ |
На страницах свойств проекта перейдите к Configuration Properties→C/C++→Optimization и установите опцию Optimization в значение Disabled (отключено). Для остальных опций на этой странице оставьте значения по умолчанию |
| CodeWarrior |
В окне Target Settings перейдите к Code Generation→Global Optimizations (генерация кода→глобальная оптимизация) и выберите Off (выкл) |
| C++Builder |
В Project Options перейдите к Compiler, в разделе Code optimization (оптимизация кода) выберите None |
| Dev-C++ |
В Project Options перейдите к Compiler→Optimization и установите опцию Perform a number of minor optimizations (выполнить несколько незначительных оптимизаций) в значение No (нет), затем перейдите к Compiler→Optimization→Further optimizations (дополнительные оптимизации) и установите опции Optimize (оптимизировать), Optimize more (дополнительно оптимизировать) и Best Optimization (наилучшая оптимизация) в значение No |
Табл. 1.24. Отключение встраивания из IDE
Читать дальше