Udostępnij za pośrednictwem


Obsługiwane zmiany kodu i ograniczenia (C++)

Edytuj i Kontynuuj dla języka Visual C++ obsługuje większość typów zmian w kodzie.Jednak niektóre zmiany nie zostaną zastosowane podczas wykonywania programu.Aby zastosować te zmiany, należy zatrzymać wykonanie i tworzyć nową wersję kodu.

Zobacz Edytuj i kontynuuj (Visual C++) informacje na temat pracy z Edytuj i Kontynuuj c++ w programie Visual Studio.

W tym artykule

Nieobsługiwana zmian

Nieobsługiwane scenariusze

Ograniczenia połączeń

Ograniczenia wstępnie skompilowanym nagłówka

Ograniczenia atrybut IDL

Nieobsługiwana zmian

Nie można zastosować następujące zmiany C/C++ podczas sesji debugowania:

  • Większość zmian danych globalnych lub statycznego.

  • Zmiany plików wykonywalnych, które są kopiowane z innego komputera i nie zawierają wbudowane lokalnie.

  • Zmiany typu danych wpływających na układ obiektu, na przykład elementy danych klasy.

  • Dodawanie więcej niż 64 KB nowego kodu lub danych.

  • Dodawanie zmiennych, które wymagają konstruktora w punkcie przed wskaźnik instrukcji.

  • Zmiany, które mają wpływ na kod, który wymaga inicjowania w czasie wykonywania.

  • W niektórych przypadkach, dodawanie mechanizmy obsługi wyjątków.

  • Zmiany do plików zasobów.

  • Zmiany kodu w plikach tylko do odczytu.

  • Zmiany kodu bez plik PDB.

  • Zmiany kodu, który nie ma obiektu pliku.

Jeśli jeden te zmiany, a następnie spróbuj zastosować zmiany kodu, błąd lub ostrzeżenie pojawia się w danych wyjściowych okna.

  • Edytuj i Kontynuuj nie aktualizuje bibliotek statycznych.Jeśli zostaną wprowadzone zmiany w bibliotece statyczne wykonania kontynuuje starej wersji i ostrzeżenie nie jest generowane.

Nieobsługiwane scenariusze

Edytuj i Kontynuuj C/c++ jest niedostępna w następujących scenariuszach debugowania:

  • Debugowanie aplikacji natywnych skompilowany z/Zo (Enhance Optimized Debugging)

  • Debugowanie aplikacji ze Sklepu Windows lub składników.

  • Debugowanie w systemie Windows 98.

  • Debugowanie mieszanym (macierzystego/zarządzane).

  • Debugowanie kodu JavaScript.

  • Debugowanie SQL.

  • Debugowanie pliku zrzutu.

  • Edytowanie kodu po nieobsługiwany wyjątek, po rozwijają się na nieobsługiwanych wyjątków stos wywołań nie zaznaczono opcji.

  • Debugowanie aplikacji za pomocą dołączyć do zamiast uruchamiania aplikacji wybierając Start na debugowanie menu.

  • Debugowanie kodu zoptymalizowane.

  • Debugowanie kodu starszej wersji po nowej wersji nie można tworzyć z powodu błędów kompilacji.

Powrót do początkuW tym artykule

Ograniczenia połączeń

Łączenie opcji, które Wyłącz Edytuj i Kontynuuj | Automatyczne ponowne łączenie ograniczenia

Łączenie opcji, które Wyłącz Edytuj i Kontynuuj

Następujące opcje łączenie wyłączyć Edytuj i Kontynuuj:

  • Ustawienie /OPT:REF, /OPT:ICF, lub /INCREMENTAL:NO wyłącza Edytuj i kontynuuj następujące ostrzeżenie:

    ŁĄCZE: ostrzeżenie LNK4075: Ignorowanie /EDITANDCONTINUE z powodu tych

    specyfikacja

  • Ustawienie /ORDER, /RELEASE, lub /FORCE wyłącza Edytuj i Kontynuuj to ostrzeżenie:

    ŁĄCZE: ostrzeżenie LNK4075: Ignorowanie /INCREMENTAL z powodu/Option

    specyfikacja

  • Ustawienie żadnych opcji, która uniemożliwia tworzenie pliku bazy danych (.pdb) program wyłącza Edytuj i Kontynuuj bez określonych ostrzeżenia.

Automatyczne ponowne łączenie ograniczenia

Edytuj i Kontynuuj domyślnie relinks programu na końcu sesji debugowania, aby utworzyć plik wykonywalny aktualne.

Edytuj i Kontynuuj nie można ponownie połączyć program Jeśli debugowania go z lokalizacji innej niż oryginalne kompilacji.Komunikat informuje, należy ponownie utworzyć ręcznie.

Edytuj i Kontynuuj nie odbudować bibliotek statycznych.Po wprowadzeniu zmian w bibliotece statyczne przy użyciu Edytuj i Kontynuuj, należy ręcznie odbudować aplikacje biblioteki i Łącz ponownie, używając go.

Edytuj i kontynuuj nie wywołuje niestandardowych kroków kompilacji.Jeśli program używa niestandardowych kroków kompilacji, można ponownie skompilować ręcznie, aby można było wywołać niestandardowe kroki kompilacji.W takim przypadku, można wyłączyć ponowne połączenie po wykonaniu Edytuj i kontynuuj, aby zapewnić, że zostaniesz poproszony o ponowną kompilację ręczną.

Aby wyłączyć ponowne łączenie po Edytuj i Kontynuuj

  1. Na debugowanie menu, wybierz polecenie opcji i ustawień.

  2. W opcje okna dialogowego debugowanie , a następnie wybierz węzeł Edytuj i Kontynuuj węzła.

  3. Usuń zaznaczenie ponownie połączyć zmiany kodu po pole wyboru.

Powrót do początkuW tym artykule

Ograniczenia wstępnie skompilowanym nagłówka

Domyślnie edytować i kontynuować nagłówki wstępnie skompilowanym obciążenia i procesów w tle w celu przyspieszenia przetwarzania zmian w kodzie.Ładowanie wstępnie skompilowanym nagłówki wymaga alokacji pamięci fizycznej, który może być problem, jeśli kompilacja na komputerze z ograniczoną ilością pamięci RAM.Można określić, czy może to być problem przy użyciu Menedżera zadań systemu Windows do określenia ilość dostępnej pamięci fizycznej podczas debugowania.Jeśli ta liczba jest większa niż rozmiar prekompilowanych nagłówków, nie powinny wystąpić problemy w trybie Edytuj i kontynuuj.Jeśli wartość jest mniejsza niż rozmiar nagłówkach wstępnie skompilowanym, można zablokować Edytuj i Kontynuuj ładowania wstępnie skompilowanym nagłówki w tle.

Aby wyłączyć ładowanie tła wstępnie skompilowany nagłówki dla Edytuj i Kontynuuj

  1. Na debugowanie menu, wybierz polecenie opcji i ustawień.

  2. W opcje okna dialogowego debugowanie , a następnie wybierz węzeł Edytuj i Kontynuuj węzła.

  3. Usuń zaznaczenie umożliwia Precompiling pole wyboru.

Powrót do początkuW tym artykule

Ograniczenia atrybut IDL

Edytuj i Kontynuuj nie jest generowany ponownie plików definicji (IDL) interfejsu.Dlatego zmiany atrybutów IDL nie zostanie ona uwzględniona, podczas debugowania.Aby wyświetlić wyniki zmian do IDL atrybuty, należy Zatrzymaj debugowanie i odbudować aplikacji.Edytuj i Kontynuuj nie generuje błąd lub Ostrzeżenie Jeśli atrybuty IDL został zmieniony.Aby uzyskać więcej informacji, zobacz atrybuty IDL.

Powrót do początkuW tym artykule

Zobacz też

Inne zasoby

Edytuj i kontynuuj (Visual C++)