我已经在两台独立的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 –