Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Symptomy

Rozpatrzmy następujący scenariusz:

  • Włączyć opcję optymalizacji globalnej (/og/og) przez włączenie jednej z następujących opcji:

    • /O1

    • /O2

    • /Ox

  • Tworzenie pliku źródłowego programu Microsoft Visual C++ za pomocą Microsoft Visual Studio 2008 z dodatkiem Service Pack 1 (SP1).

  • Plik źródłowy wywołuje funkcję setjmp , funkcja longjmp lub obu tych funkcji.

W tym scenariuszu kompilator może używać tej samej przesunięcie stosu do przechowywania różnych zmiennych lokalnych. W związku z tym po uruchomieniu generowanych aplikacji może wystąpić nieoczekiwane zachowanie.

Przyczyna

Ten problem występuje, ponieważ Optymalizator nie uwzględnia funkcji setjmp lub longjmp . Powoduje to, że optymalizator niepoprawnie obliczyć istnienia zmiennych lokalnych. Gdy jedna zmienna zostanie zmieniona, innej zmiennej może być nieoczekiwanie zmieniony.

Rozwiązanie

Informacje o poprawce

Obsługiwana poprawka jest udostępniana przez firmę Microsoft. Jednak ta poprawka jest przeznaczona do usunięcia tylko problemu opisanego w tym artykule. Zastosuj poprawkę tylko w systemach, w których występuje problem opisany w tym artykule. Ta poprawka może być wciąż w fazie testowania. Jeśli dany system nie jest poważnie narażony na ten problem, firma Microsoft zaleca, aby poczekać na następną aktualizację oprogramowania zawierającą tę poprawkę. Aby natychmiast rozwiązać ten problem, skontaktuj się z biurem obsługi klienta Microsoft w celu uzyskania poprawki. Aby uzyskać pełną listę numerów telefonów działu obsługi klienta firmy Microsoft lub utworzyć osobne zlecenie usługi odwiedź następujące witryny firmy Microsoft:

http://support.microsoft.com/contactus/?ws=supportUwaga W wyjątkowych przypadkach użytkownik telefonujący do pomocy technicznej może być zwolniony z opłaty, jeżeli wykwalifikowany pracownik pomocy technicznej firmy Microsoft ustali, że określona aktualizacja umożliwia rozwiązanie zgłoszonego problemu. Koszty obsługi zwykłych zastosuje się do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej aktualizacji. Aby pobrać tę poprawkę z galerii kodu Microsoft Developer Network (MSDN), odwiedź następujące witryny firmy Microsoft:

http://code.msdn.microsoft.com/KB2498381Uwaga Galerii kodów MSDN zawiera listę języków, dla których dostępna jest poprawka. Jeśli na liście język nie jest widoczny, to dlatego stronie resource galerię kodu nie jest dostępna dla danego języka. Lub tę poprawkę można pobrać z następującej witryny Microsoft Connect:

https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=34826

Wymagania wstępne

Aby zastosować tę poprawkę, musi mieć Microsoft Visual Studio 2008 z dodatkiem Service Pack 1 zainstalowany.

Informacje dotyczące ponownego uruchamiania

Nie trzeba ponownie uruchomić komputer po zainstalowaniu tej poprawki, jeśli zostały zatrzymane wszystkie wystąpienia programu Visual Studio.

Informacje dotyczące zastępowania poprawek

Ta poprawka nie zastępuje wcześniej wydanej poprawki.

Informacje dotyczące pliku

Wersja globalna tej poprawki instaluje pliki, których atrybuty wymieniono w poniższych tabelach. Daty i godziny odpowiadające tym plikom są podane w formacie uniwersalnego czasu koordynowanego (UTC, Coordinated Universal Time). Daty i godziny odpowiadające tym plikom na komputerze lokalnym są wyświetlane w formacie czasu lokalnego, wraz z Twoim bieżącym bias czasu letniego (DST). Dodatkowo, daty mogą ulec zmianie podczas wykonywania pewnych operacji na plikach.

Nazwa pliku

Wersja pliku

Rozmiar pliku

Data

Godzina

Platforma

C2.dll

15.0.30729.6147

2,283,840

25-lut-2011

01:25

x86

C2.dll

15.0.30729.6147

2,362,688

25-lut-2011

01:25

x86

C2.dll

15.0.30729.6147

2,493,248

25-lut-2011

01:25

x86

C2.dll

15.0.30729.6147

3,018,048

25-lut-2011

01:25

x64

C2.dll

15.0.30729.6147

7,263,040

25-Feb-2011

01:25

IA-64

Link.exe

9.0.30729.6147

1,055,560

25-lut-2011

01:25

x64

Link.exe

9.0.30729.6147

2,135,368

25-Feb-2011

01:25

IA-64

Link.exe

9.0.30729.6147

800,584

25-Feb-2011

01:25

x86

Obejście

Aby obejść ten problem, należy zainicjować zmiennych lokalnych wcześnie w funkcji, aby kompilator może być świadomi istnienia zmiennych.

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Więcej informacji

Aby uzyskać więcej informacji dotyczących terminologii aktualizacji oprogramowania, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

824684 Opis standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×