Д. Стефенс - C++. Сборник рецептов
- Название:C++. Сборник рецептов
- Автор:
- Жанр:
- Издательство:КУДИЦ-ПРЕСС
- Год:2007
- Город:Москва
- ISBN:5-91136-030-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Д. Стефенс - C++. Сборник рецептов краткое содержание
Данная книга написана экспертами по C++ и содержит готовые рецепты решения каждодневных задач для программистов на С++. Один из авторов является создателем библиотеки Boost Iostreams и нескольких других библиотек C++ с открытым исходным кодом. В книге затрагивается множество тем, вот лишь некоторые из них: работа с датой и временем; потоковый ввод/вывод; обработка исключений; работа с классами и объектами; сборка приложений; синтаксический анализ XML-документов; программирование математических задач. Читатель сможет использовать готовые решения, а сэкономленное время и усилия направить на решение конкретных задач.
C++. Сборник рецептов - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
1.21. Создание отладочной сборки
Вы хотите собрать версию проекта, которую можно будет легко отлаживать.
В основном для получения отладочной сборки требуется:
• отключить оптимизации;
• отключить расширение встраиваемых (inline) функций;
• включить генерацию отладочной информации.
Таблица 1.20 представляет опции компилятора и компоновщика, предназначенные для отключения оптимизаций и встраивания функций, а табл. 1.21 представляет опции компилятора и компоновщика для включения отладочной информации.
Табл. 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
IDE | Конфигурация |
---|---|
Visual C++ | На страницах свойств проекта перейдите к Configuration Properties→C/C++→Optimization и установите опцию Inline Function Expansion (расширение встраиваемых функций) в значение Default (по умолчанию) |
CodeWarrior | В окне Target Settings перейдите к Language Settings→C/C++ Language и установите Inline Depth (глубина встраивания) в значение Don't Inline (не встраивать) |
C++Builder | В Project Options перейдите к Compiler и в разделе Debugging установите флажок Disable inline expansions (отключить встраивание функций) |
Dev-C++ | См. запись для GCC в табл. 1.20 и обратитесь к рецепту 1.20 |
Табл. 1.25. Включение отладочной информации в IDE
IDE | Конфигурация |
---|---|
Visual C++ | См. табл. 1.22 |
CodeWarrior | В окне Target Settings перейдите к Language Settings→Linker→PPC Mac OS X Linker и установите флажки Generate SYM File (генерировать SYM-файл) и Full Path in SYM Files (полные пути в SYM-файлах) |
C++Builder | В Project Options перейдите к Compiler и установите флажки Debug information и Line Number Information (информация о номерах строк) |
Dev-C++ | См. запись для GCC в табл. 1.21 и обратитесь к рецепту 1.20 |
Все наборы инструментов предоставляют опции для генерации в объектных и исполняемых файлах информации, которая позволяет отладчикам сообщать полезные данные при пошаговом выполнении программы. Эта информация обычно включает имена исходных файлов и номера строк, соответствующих определенному объекту или инструкциям машинного кода, а также информацию об объектах С++, занимающих определенные области памяти, включая их имена и типы.
Читать дальшеИнтервал:
Закладка: