Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W projektach języka C++ można użyć funkcji Przeładowywania na gorąco, wcześniej nazywanej Edytuj i kontynuuj. Aby uzyskać informacje o ograniczeniach funkcji, zobacz Obsługiwane zmiany kodu (C++).
W projektach języka C++ można używać opcji Edytuj i kontynuuj. Aby uzyskać więcej informacji 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) w przypadku binariów skompilowanych bez użycia opcji /Od (Wyłącz (Debug)).
Opcja /Zo wyłącza opcję Edytuj i kontynuuj zgodnie z opisem w temacie Instrukcje: Debugowanie zoptymalizowanego kodu.
Włączanie lub wyłączanie przeładowywania na gorąco
Jeśli wprowadzasz zmiany w kodzie, którego nie chcesz stosować podczas bieżącej sesji debugowania, możesz wyłączyć automatyczne wywołanie przeładowywania na gorąco. Możesz ponownie włączyć automatyczne ponowne ładowanie na gorąco zgodnie z potrzebami.
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).
- Jeśli jesteś obecnie w sesji debugowania, zatrzymaj debugowanie (Shift + F5).
Otwórz okienko Narzędzia>Opcje i rozwiń sekcję Wszystkie ustawienia>Debugowanie>.NET/C++ Hot Reload.
Aby włączyć przeładowywanie na gorąco podczas uruchamiania z dołączonym debugerem (F5), zaznacz pole wyboru Włącz przeładowywanie na gorąco w okienku po prawej stronie.
Po zaznaczeniu pola wyboru można skonfigurować następujące opcje:
Opcja przeładowywania na gorąco Description Default Automatyczne stosowanie zmian przy kontynuacji (tylko w wersji natywnej) Stosuje zmiany podczas kontynuowania pracy z dołączonym debugerem (F5). Włączona Ostrzegaj o nieaktualnym kodzie Włącza ostrzeżenie, gdy debuger napotka kod, który został zmodyfikowany, ale nie można go natychmiast zastosować. Włączona Włącz, gdy nie trwa debugowanie Włącza przeładowywanie na gorąco podczas uruchamiania bez dołączonego debugera (Ctrl + F5). Włączona Zastosuj przy zapisywaniu pliku Stosuje zmiany podczas zapisywania pliku. Disabled Poziom szczegółowości rejestrowania Ustaw poziom rejestrowania, gdy Hot Reload jest włączony. Wybierz pozycję Minimalna, Szczegółowa lub Diagnostyczna. Minimalny
Otwórz okno dialogowe Narzędzia>Opcje i rozwiń sekcję Debugowanie>.NET/C++ Przeładowywanie na gorąco.
Wybierz jedną lub wszystkie następujące opcje, aby włączyć tę funkcję:
Włącz przeładowywanie na gorąco: umożliwia przeładowywanie na gorąco podczas uruchamiania z dołączonym debugerem (F5).
Włącz przeładowywanie na gorąco podczas uruchamiania bez debugowania: włącza funkcję Przeładowywania na gorąco podczas uruchamiania bez dołączonego debugera (Ctrl + F5).
Włącz przeładowywanie na gorąco podczas zapisywania pliku: włącza ponowne ładowanie na gorąco po zapisaniu pliku.
Szczegółowość rejestrowania: Ustaw poziom rejestrowania, gdy Hot Reload jest włączony. Wybierz opcję Minimalna (domyślna), Szczegółowa lub Diagnostyczna.
Zmiana tych ustawień ma wpływ na wszystkie projekty, nad którym pracujesz. Nie musisz 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
/ZIopcję .Kliknij przycisk OK.
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 ponownie włączyć automatyczną edycję i kontynuować zgodnie z potrzebami.
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).
Jeśli jesteś obecnie w sesji debugowania, zatrzymaj debugowanie (Shift + F5).
Otwórz okno dialogowe Opcje narzędzi> irozwiń sekcjęOgólne debugowania>.
Aby włączyć opcję Edytuj i kontynuuj, zaznacz pole wyboru Włącz edycję i kontynuuj . Aby wyłączyć tę opcję, wyczyść pole wyboru.
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 musisz 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
/ZIopcję .
Jawne stosowanie zmian kodu
W języku C++ funkcja Edit and Continue może 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. Funkcja ustawia moment wykonania 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 Ustaw następną instrukcję 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 później zastosować zmiany kodu w przypadku kontynuowania debugowania. Ten scenariusz występuje, 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.