修正: 非預期的行為,當您執行時產生的 Visual Studio 2008 Service Pack 1 應用程式,呼叫 setjmp 函式或 longjmp 函式在原始程式檔中

文章翻譯 文章翻譯
文章編號: 2498381
全部展開 | 全部摺疊

在此頁中

徵狀

請考慮下列情況:
  • 啟用全域最佳化選項 (/Og) 藉由啟用下列選項之一:
    • / O1?
    • /O2?
    • /Ox?
  • 您可以使用 Microsoft Visual Studio 2008 Service Pack 1 (SP1),以建置 Microsoft Visual c + + 原始程式檔。
  • 來源檔案呼叫setjmp函式,longjmp函式或這兩個函式。

在這個案例中,編譯器可能會使用相同的堆疊位移來儲存不同的本機變數。因此,當您執行產生的應用程式時,可能會發生未預期的行為。

發生的原因

因為最佳化器並未處理,就會發生這個問題 setjmp函式或longjmp函式。這會導致最佳化器無法正確計算區域變數的存留期。當變更變數的第一個時,可能會意外地變更另一個變數。

解決方案

Hotfix 資訊

可從 Microsoft 取得支援的 hotfix。不過,此 hotfix 被用來修正本文所述的問題。此 hotfix 只適用於發生本文所述之問題的系統上。此 hotfix 可能會接受其他測試。因此,如果您不會嚴重受到這個問題,我們建議您等候下一個包含此 hotfix 的軟體更新。

若要立即解決這個問題,請連絡 Microsoft 客戶支援服務 」 取得 hotfix。如 Microsoft 客戶服務和支援電話號碼或建立個別的服務要求的完整清單,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support
附註 在特殊情況下,如果 Microsoft 支援專業人員認為某特定更新程式可以解決您的問題,可能就收取通常因支援電話所產生的費用。收取支援費用會套用到其他支援問題的特定更新程式檔案無法解決的問題。

若要從 Microsoft 開發人員網路 (MSDN) 程式碼庫下載此 hotfix,請造訪下列 Microsoft 網站:
http://code.msdn.microsoft.com/KB2498381

附註 MSDN 程式碼庫顯示 hotfix 是可用的語言。如果看不到您使用的語言,它是因為代碼庫資源頁面未提供該語言的支援。

或者,您可以從下列 Microsoft 連線網站下載這個 hotfix:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID = 34826

必要條件

若要套用此 hotfix,您必須擁有 Microsoft Visual Studio 2008 Service Pack 1 安裝。

重新啟動資訊

您沒有重新啟動電腦,如果您已經停止所有執行個體的 Visual Studio 安裝此 hotfix 之後。

Hotfix 取代資訊

此 hotfix 不會取代先前發行的 hotfix。

檔案資訊

此 hotfix 的全球版本安裝檔案具有下列表格中所列的屬性。日期和時間的這些檔案會列出在國際標準時間 (UTC)。以您當地的時間加上目前的日光節約時間 (DST) 的時差來顯示日期和本機電腦上這些檔案的時間。此外,日期和時間可能會變更當您執行特定作業時的檔案。
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
C2.dll15.0.30729.61472,283,84025 2 月 201101: 25x86
C2.dll15.0.30729.61472,362,68825 2 月 201101: 25x86
C2.dll15.0.30729.61472,493,24825 2 月 201101: 25x86
C2.dll15.0.30729.61473,018,04825 2 月 201101: 25x64
C2.dll15.0.30729.61477,263,04025 2 月 201101: 25IA-64
Link.exe9.0.30729.61471,055,56025 2 月 201101: 25x64
Link.exe9.0.30729.61472,135,36825 2 月 201101: 25IA-64
Link.exe9.0.30729.6147800,58425 2 月 201101: 25x86



其他可行方案

若要解決這個問題,請初始化函式在早期的區域變數,讓編譯器可以是變數的存留期的注意。

狀況說明

Microsoft 已確認這是在 「 Microsoft 產品資料 」 適用於 」 一節中所列的問題。

其他相關資訊

如需有關軟體更新術語的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
編號 824684 用來描述 Microsoft 軟體更新標準術語的說明

屬性

文章編號: 2498381 - 上次校閱: 2011年4月21日 - 版次: 3.0
關鍵字:?
kbqfe kbhotfixserver kbfix kbexpertiseinter kbsurveynew kbbug kbmt KB2498381 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:2498381
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com