2010-08-26 53 views
0

我有一個在Visual Studio 2008中編譯的應用程序,它在調試版本中運行良好。在發佈版本中,當std :: wstring賦值完成或訪問共享指針時,應用程序崩潰。任何想法爲什麼這發生在發佈版本。 crash at: eg:m_name = name; // m_name和name的類型爲std :: wstringVisual Studio 2008發佈版本:應用程序在基本字符串或基本指針操作上崩潰

+0

你可以發佈該類的代碼以及你如何使用它?看起來像你正在嘗試使用單位化的內存位置。 – Naveen 2010-08-26 07:34:30

+0

你是如何在發佈版本中找到崩潰的位置的?你用PDB建立它了嗎?如果是的話,那麼你可以找出發佈版本崩潰的原因。 – Chubsdad 2010-08-26 07:57:24

回答

0

您的問題可能是由程序的其他部分引起的內存損壞。仔細檢查你的邊界檢查在任何地方都是正確的,你也可以使用Memory Validator或Bounds Checker等專用工具。

1

在調試模式下,一些編譯器會將指針的值設置爲默認值(例如null)。但是在釋放模式下,指針的值將是該位置堆棧上的任何值,並且將指向無效的對象,從而導致崩潰。

+0

Heisenbug:http://en.wikipedia.org/wiki/Unusual_software_bug – Drahakar 2010-08-26 10:41:21