Przygotowywanie debugowania: typy projektów C++
W tej sekcji opisano sposób debugowania podstawowych typów projektów utworzonych przez szablony projektów Visual C++.
Należy pamiętać, że te typy projektów, które tworzą biblioteki DLL jako ich dane wyjściowe, zostały pogrupowane w debugowanie projektów DLL ze względu na wspólne funkcje, które współużytkują.
W tym temacie
Zalecane ustawienia właściwości
Zalecane ustawienia właściwości
Niektóre właściwości powinny być ustawiane w taki sam sposób dla wszystkich niezarządzanych scenariuszy debugowania. W poniższych tabelach są wyświetlane zalecane ustawienia właściwości. Ustawienia niewymienione w tym miejscu mogą się różnić w zależności od różnych niezarządzanych typów projektów. Aby uzyskać więcej informacji, zobacz Project Settings for a C++ Debug Configuration (Ustawienia projektu dla konfiguracji debugowania języka C++).
Właściwości konfiguracji | C/C++ | Węzeł optymalizacji
Nazwa właściwości | Ustawienie |
---|---|
Optymalizacja | Ustaw wartość Wyłączone (/0d). Zoptymalizowany kod jest trudniejszy do debugowania, ponieważ wygenerowane instrukcje nie odpowiadają bezpośrednio kodowi źródłowemu. Jeśli okaże się, że program zawiera usterkę wyświetlaną tylko w zoptymalizowanym kodzie, możesz włączyć to ustawienie, ale pamiętaj, że kod wyświetlany w oknie Dezasemblacji jest generowany na podstawie zoptymalizowanego źródła, które może nie być zgodne z tym, co widzisz w oknach źródłowych. Inne funkcje, takie jak krok po kroku, mogą nie zachowywać się zgodnie z oczekiwaniami. |
Właściwości konfiguracji | Konsolidator | Węzeł debugowania
Nazwa właściwości | Ustawienie |
---|---|
Generowanie informacji o debugowaniu | Zawsze należy ustawić tę opcję na Tak (/DEBUG), aby utworzyć symbole debugowania i pliki potrzebne do debugowania. Gdy aplikacja przechodzi do środowiska produkcyjnego, można ją wyłączyć. |
Projekty Win32
Aplikacje Win32 to tradycyjne programy systemu Windows napisane w języku C lub C++. Debugowanie tego typu aplikacji w programie Visual Studio jest proste.
Aplikacje Win32 obejmują aplikacje MFC i projekty ATL. Używają interfejsów API systemu Windows i mogą używać MFC lub ATL, ale nie używają środowiska uruchomieniowego języka wspólnego (CLR). Mogą jednak wywołać kod zarządzany, który używa środowiska CLR.
Poniższa procedura wyjaśnia, jak debugować projekt Win32 z poziomu programu Visual Studio. Innym sposobem debugowania aplikacji Win32 jest uruchomienie aplikacji poza programem Visual Studio i dołączenie do niej. Aby uzyskać więcej informacji, zobacz Dołączanie do uruchomionych procesów.
Aby debugować aplikację Win32 języka C lub C++
Otwórz projekt w programie Visual Studio.
W menu Debugowanie wybierz pozycję Start.
Debugowanie przy użyciu technik omówionych w temacie Pierwsze spojrzenie na debuger.
Aby ręcznie ustawić konfigurację debugowania
W menu Widok kliknij pozycję Strony właściwości.
Kliknij węzeł Właściwości konfiguracji, aby go otworzyć, jeśli jeszcze nie jest
Wybierz pozycję Ogólne i ustaw wartość wiersza Dane wyjściowe na Debugowanie.
Otwórz węzeł C/C++, a następnie wybierz pozycję Ogólne.
W wierszu Debugowanie określ typ informacji debugowania, które mają być generowane przez kompilator. Wartości, które można wybrać, obejmują bazę danych programu (/Zi) lub bazę danych programu do edycji i kontynuowania (/ZI).
Wybierz pozycję Optymalizacja, a następnie w wierszu Optymalizacja wybierz pozycję Wyłączone (/0d) z listy rozwijanej.
Zoptymalizowany kod jest trudniejszy do debugowania, ponieważ wygenerowane instrukcje nie odpowiadają bezpośrednio kodowi źródłowemu. Jeśli znajdziesz, że program zawiera usterkę wyświetlaną tylko w zoptymalizowanym kodzie, możesz włączyć to ustawienie, ale pamiętaj, że kod wyświetlany w oknie Dezasemblacji jest generowany na podstawie zoptymalizowanego źródła, które może nie być zgodne z tym, co widzisz w oknach źródłowych. Funkcje, takie jak krok, mogą niepoprawnie pokazywać punkty przerwania i punkt wykonywania.
Otwórz węzeł Konsolidator i wybierz pozycję Debugowanie. W pierwszym wierszu Wygeneruj wybierz pozycję Tak (/DEBUG) z listy rozwijanej. Zawsze ustawiaj to podczas debugowania.
Aby uzyskać więcej informacji, zobacz Project Settings for a C++ Debug Configuration (Ustawienia projektu dla konfiguracji debugowania języka C++).