我已經在兩臺獨立的64位機器上運行這個問題(都運行VS2012)。方法如下:在它創建沒有一個新的控制檯應用程序,但這樣的:爲什麼Debug.Assert不能用於64位? (沒有符號加載)
using System.Diagnostics;
namespace ConsoleApplication2
{ class Program
{ static void Main(string[] args)
{
Debug.Assert(false);
}
}
}
然後,打開項目設置,導航到建設 - >常規 - >目標平臺:,並選擇64(或者,選擇「任何CPU」,並禁用「首選32位」設置),然後運行該程序。
將出現Assertion Failed
對話框,但點擊「重試」不會分解代碼,而只會打開「無符號加載」窗口,其中顯示「符號加載跳過」(請參閱下面的截圖)。
如果我改變平臺目標到86(或重新啓用的「首選32位」設置),斷言重新開始正常工作。
注:
- 我.pdb文件似乎罰款;斷點適用於任何一種設置。
- 如果我選擇禁用我的代碼,它仍然不起作用;它只是帶我到一個窗口,說「源不可用」。
所以我的問題是,我該如何獲得調試斷言來闖入64位應用程序中的代碼?(或爲什麼禁用「首選32位」設置打破它?)
有關的? http://stackoverflow.com/a/32295100/4136325 –