我们最近搬到了64位操作系统(Windows 7)并安装了visual studio 2008.现在在调试异常时,我无法将下一个语句设置回try块中的代码。我用Google搜索了这篇文章并点击了这篇文章。
这解释了它但是这可以追溯到2007年。现在有没有解决方案或解决方法?
答案 0 :(得分:9)
.NET使用Windows结构化异常处理的底层管道。实现x64异常处理的方式有很大差异。它使用由编译器生成的地址表来定位适当的异常过滤器。 x86使用函数指针的链接列表,编译器更容易实现。
x64方式改变的原因之一是出于安全原因,病毒代码设法通过修补链表并引发异常来注入自身,允许其有效负载执行。在XP SP1中存在针对此问题的对策,但代价是效率。 x64的重新设计避免了这种成本。
嗯,你可以看到它的发展方向。无论如何,您应该将平台目标设置为x86来调试代码。这也启用了Edit + Continue,一个非常有价值的调试辅助工具。这是VS2010项目的默认设置。只需翻转到AnyCPU即可获得Release版本。
答案 1 :(得分:1)
疯狂的回答:只在catch中添加一个赋值变量,在它下面放一个if / process。