Edytuj i kontynuuj (C++)

W projektach języka C++ można użyć Przeładowywanie na gorąco, wcześniej nazywanego edytowaniem i kontynuowanie. Aby uzyskać informacje na temat ograniczeń edycji i kontynuowania, zobacz Obsługiwane zmiany kodu (C++ ).

W projektach języka C++ można używać opcji Edytuj i kontynuuj. Aby uzyskać informacje na temat ograniczeń edycji i kontynuowania, zobacz Obsługiwane zmiany kodu (C++ ).

Opcja kompilatora /Zo (Ulepszone zoptymalizowane debugowanie) dodaje dodatkowe informacje do plików .pdb (symbol) skompilowanych bez opcji /Od (Wyłącz (Debug) ).

/Zo wyłącza opcję Edytuj i Kontynuuj. Zobacz Instrukcje: debugowanie zoptymalizowanego kodu.

Włączanie lub wyłączanie opcji Edytuj i kontynuuj

Jeśli wprowadzasz zmiany w kodzie, którego nie chcesz stosować podczas bieżącej sesji debugowania, możesz wyłączyć automatyczne wywołanie funkcji Edytuj i Kontynuuj. Możesz również ponownie włączyć automatyczną edycję i kontynuować.

Ważne

Aby uzyskać wymagane ustawienia kompilacji i inne informacje na temat zgodności funkcji, zobacz C++ Edit and Continue in Visual Studio 2015 Update 3 (Edytowanie i kontynuowanie języka C++ w programie Visual Studio 2015 Update 3).

  1. Jeśli jesteś w sesji debugowania, zatrzymaj debugowanie (Shift + F5).

  2. Otwórz pozycję Narzędzia>Opcje>Debugowanie.NET>/C++ Przeładowywanie na gorąco.

  3. Wybierz jedną lub obie poniższe opcje, aby włączyć opcję Edytuj i Kontynuuj.

    • Włącz Przeładowywanie na gorąco i edytuj i kontynuuj podczas debugowania. Włącza Przeładowywanie na gorąco podczas rozpoczynania pracy z dołączonym debugerem (F5).

    • Włącz Przeładowywanie na gorąco podczas uruchamiania bez debugowania. Włącza Przeładowywanie na gorąco podczas uruchamiania bez dołączonego debugera (Ctrl+F5).

    Zmiana tych ustawień ma wpływ na wszystkie projekty, nad którym pracujesz. Nie trzeba ponownie kompilować aplikacji po zmianie ustawienia. Jeśli skompilujesz aplikację z poziomu wiersza polecenia lub pliku make, ale debugujesz w środowisku programu Visual Studio, nadal możesz użyć opcji Edytuj i kontynuuj, jeśli ustawisz opcję /ZI .

  1. Jeśli jesteś w sesji debugowania, zatrzymaj debugowanie (Shift + F5).

  2. W menu Narzędzia wybierz pozycję Opcje.

  3. W oknie dialogowym Opcje wybierz pozycję Debugowanie > Ogólne.

  4. Aby włączyć, wybierz pozycję Włącz edytowanie i kontynuuj. Aby wyłączyć, wyczyść pole wyboru.

  5. W grupie Edytuj i kontynuuj zaznacz lub wyczyść pole wyboru Włącz edycję natywną i kontynuuj.

    Zmiana tego ustawienia ma wpływ na wszystkie projekty, nad którym pracujesz. Nie trzeba ponownie kompilować aplikacji po zmianie tego ustawienia. Jeśli skompilujesz aplikację z poziomu wiersza polecenia lub pliku make, ale debugujesz w środowisku programu Visual Studio, nadal możesz użyć opcji Edytuj i kontynuuj, jeśli ustawisz opcję /ZI .

Jawne stosowanie zmian kodu

W języku C++, edytuj i kontynuuj można zastosować zmiany kodu na dwa sposoby. Zmiany kodu można stosować niejawnie, po wybraniu polecenia wykonywania lub jawnie za pomocą polecenia Zastosuj zmiany kodu.

W przypadku jawnego stosowania zmian kodu program pozostaje w trybie przerwania — wykonywanie nie nastąpi.

  • Aby jawnie zastosować zmiany kodu, w menu Debugowanie wybierz pozycję Zastosuj zmiany kodu.

Jak zatrzymać zmiany kodu

Podczas gdy funkcja Edytuj i kontynuuj jest w trakcie stosowania zmian kodu, możesz zatrzymać operację.

Aby przestać stosować zmiany kodu:

  • W menu Debuguj wybierz pozycję Zatrzymaj stosowanie zmian kodu.

    Ten element menu jest widoczny tylko wtedy, gdy są stosowane zmiany kodu.

    Jeśli wybierzesz tę opcję, żaden ze zmian kodu nie zostanie zatwierdzony.

Resetowanie punktu wykonywania

Niektóre zmiany w kodzie mogą spowodować przejście do nowej lokalizacji, gdy zmiany są stosowane w pozycji Edytuj i Kontynuuj. Opcja Edytuj i kontynuuj umieszcza punkt wykonywania tak dokładnie, jak to możliwe, ale wyniki mogą nie być poprawne we wszystkich przypadkach.

W języku C++okno dialogowe informuje o zmianie punktu wykonywania. Przed kontynuowanie debugowania należy sprawdzić, czy lokalizacja jest poprawna. Jeśli nie jest to poprawne, użyj polecenia Ustaw następną instrukcję. Aby uzyskać więcej informacji, zobacz Ustawianie następnej instrukcji do wykonania.

Praca ze nieaktualnym kodem

W niektórych przypadkach funkcja Edytuj i kontynuuj nie może natychmiast zastosować zmian kodu do pliku wykonywalnego, ale może być w stanie zastosować zmiany kodu później, jeśli będziesz kontynuować debugowanie. Dzieje się tak, jeśli edytujesz funkcję, która wywołuje bieżącą funkcję lub jeśli dodasz więcej niż 64 bajty nowych zmiennych do funkcji w stosie wywołań

W takich przypadkach debuger kontynuuje wykonywanie oryginalnego kodu do momentu zastosowania zmian. Nieaktualny kod jest wyświetlany jako tymczasowe okno pliku źródłowego w osobnym oknie źródłowym z tytułem takim jak enc25.tmp. Edytowane źródło będzie nadal wyświetlane w oryginalnym oknie źródłowym. Jeśli spróbujesz edytować nieaktualny kod, zostanie wyświetlony komunikat ostrzegawczy.