Подготовка к отладке: Типы проектов C++Debugging Preparation: C++ Project Types

В этом разделе описана отладка основных типов проектов, созданных с использованием шаблонов проектов Visual C++Visual C++.This section describes how to debug the basic project types created by the Visual C++Visual C++ project templates.

Обратите внимание, что типы проектов, которые в результате создают DLL, были сгруппированы в разделе Отладка проектов DLL из-за их общих особенностей.Note that those project types that create DLLs as their output have been grouped into Debugging DLL Projects because of the common features they share.

Содержание разделаIn this topic

Рекомендуемые значения свойствRecommended property settings

Проекты Win32Win32 projects

Некоторые свойства должны быть установлены одинаково для всех скриптов неуправляемой отладки.Certain properties should be set the same way for all unmanaged debugging scenarios. В следующих таблицах приводятся рекомендованные параметры свойств.The following tables display recommended property settings. Параметры, здесь не перечисленные, могут иметь различные значения для различных типов неуправляемых проектов.Settings not listed here may vary among the different unmanaged project types. Дополнительные сведения см. в статье Параметры проекта для конфигурации отладки C++.For more information, see Project Settings for a C++ Debug Configuration.

Свойства конфигурации | С/С++ | Узел оптимизацииConfiguration Properties | C/C++ | Optimization node

Имя свойстваProperty Name ПараметрSetting
OptimizationOptimization Установите значение Отключено (/0d) .Set to Disabled (/0d). Оптимизированный код отлаживать труднее, так как созданные команды не полностью соответствуют исходному коду.Optimized code is harder to debug, because the generated instructions do not correspond directly to your source code. Если в программе обнаруживается ошибка, проявляющаяся только в оптимизированном коде, этот параметр можно разрешить, но следует помнить, что код, показываемый в окне Дизассемблированный код, формируется из оптимизированного источника и может не совпадать с тем, что наблюдается в исходных окнах.If you find your program has a bug that appears only in optimized code, you can turn this setting on, but remember that code shown in the Disassembly window is generated from optimized source that might not match what you see in your source windows. Другие возможности, такие как пошаговое выполнение, могут действовать не так, как ожидалось.Other features, such as stepping, might not behave as expected.

Свойства конфигурации | Компоновщик | Узел отладкиConfiguration Properties | Linker | Debugging node

Имя свойстваProperty Name ПараметрSetting
Создать отладочную информациюGenerate debugging information Следует всегда устанавливать этот параметр в Да (/DEBUG) для создания символов отладки и необходимых для нее файлов.You should always set this option to Yes (/DEBUG) to create debugging symbols and files needed for debugging. Когда приложение выходит в производство, этот параметр можно отключить.When the application goes into production, you can set it to off.

Содержание разделаIn this topic

Проекты Win32Win32 projects

Win32-приложения — это традиционные программы для Windows, написанные на C или C++.Win32 applications are traditional Windows programs written in C or C++. Отладка приложений такого типа в Visual StudioVisual Studio не вызывает никаких затруднений.Debugging this type of application in Visual StudioVisual Studio is straightforward.

Win32-приложения включают приложения MFC и ATL-проекты.Win32 applications include MFC applications and ATL projects. В них используются Windows API и могут использоваться MFC или ATL, но они не используют среду CLR.They use Windows APIs and may use MFC or ATL, but they do not use the common language runtime (CLR). Они могут, однако, вызывать управляемый код, использующий среду CLR.They can, however, call managed code that uses the CLR.

В следующей процедуре описывается отладка проекта Win32 в Visual StudioVisual Studio.The following procedure explains how to debug a Win32 project from within Visual StudioVisual Studio. Еще одним способом отладки приложений Win32 является запуск приложения вне Visual StudioVisual Studio и подключение к этому приложению.Another way to debug a Win32 application is to start the application outside of Visual StudioVisual Studio and attach to it. Дополнительные сведения см. в статье Присоединение к выполняемым процессам.For more information, see Attach to Running Processes.

Отладка приложения Win32 на C или C++To debug a C or C++ Win32 application

  1. Откройте проект в Visual Studio.Open the project in Visual Studio.

  2. В меню Отладка выберите команду Пуск.On the Debug menu, choose Start.

  3. Отладка с использованием конкретных методик описывается в статье Первое знакомство с отладчиком.Debug using the techniques discussed in First look at the debugger.

Ручная установка конфигурации отладкиTo manually set a Debug configuration

  1. В меню Вид выберите команду Страницы свойств.On the View menu, click Property Pages.

  2. Щелкните узел Свойства конфигурации, чтобы раскрыть его, если он еще не раскрыт.Click the Configuration Properties node to open it if it is not already

  3. Выберите Общие и установите для строки Вывод значение Отладка.Select General, and set the value of the Output row to Debug.

  4. Откройте узел С/С++ и выберите пункт Общие.Open the C/C++ node, and select General.

    В строке Отладка можно указать тип отладочной информации, которая будет создана компилятором.In the Debug row you specify the type of debugging information to be generated by the compiler. Можно выбрать База данных программы (/Zi) или База данных программы для операции "Изменить и продолжить" (/ZI) .Values you might choose include Program Database (/Zi) or Program Database for Edit & Continue (/ZI).

  5. Выберите Оптимизация и в строке Оптимизация выберите пункт Отключена (/0D) в раскрывающемся списке.Select Optimization, and in the Optimization row, select Disabled (/0d) from the drop-down list.

    Оптимизированный код отлаживать труднее, так как созданные команды не полностью соответствуют исходному коду.Optimized code is harder to debug, because the generated instructions do not correspond directly to your source code. Если в программе обнаруживается ошибка, проявляющаяся только в оптимизированном коде, этот параметр можно разрешить, но следует помнить, что код, показываемый в окне Дизассемблированный код, формируется из оптимизированного источника и может не совпадать с тем, что наблюдается в исходных окнах.If you find your program has a bug that appears only in optimized code, you can turn this setting on, but remember that code shown in the Disassembly window is generated from optimized source that may not match what you see in your source windows. Такие возможности, как пошаговое выполнение, скорее всего будут неправильно показывать точки останова и точки выполнения.Features such as stepping are likely to show breakpoints and execution point incorrectly.

  6. Откройте узел Компоновщик и выберите Отладка.Open the Linker node, and select Debugging. В первой строке Создать выберите параметр Да (/DEBUG) из раскрывающегося списка.In the first Generate row, select Yes (/DEBUG) from the drop-down list. Всегда делайте так при отладке.Always set this when you are debugging.

    Дополнительные сведения см. в статье Параметры проекта для конфигурации отладки C++.For more information, seeProject Settings for a C++ Debug Configuration.

    Содержание разделаIn this topic

См. такжеSee also