gpt4 book ai didi

c# - 无法在 64 位操作系统上的 Visual Studio 中从 catch 设置下一条语句

转载 作者:太空狗 更新时间:2023-10-30 00:21:34 25 4
gpt4 key购买 nike

我们最近迁移到 64 位操作系统 (Windows 7) 并安装了 visual studio 2008。现在,一旦捕获到异常进行调试时,我无法将下一条语句设置回 try block 中的代码。我在谷歌上搜索了一下,然后找到了这篇文章。

http://blogs.msdn.com/b/dougste/archive/2007/03/21/unable-to-set-next-statement-when-debugging-a-64-bit-debuggee-in-visual-studio-2005-sometimes.aspx

这解释了它,但这可以追溯到 2007 年。现在有任何解决方案或解决方法吗?

最佳答案

.NET 使用 Windows 结构化异常处理的底层管道。 x64 异常处理的实现方式有很大的不同。它使用由编译器生成的地址表来定位正确的异常过滤器。 x86 使用函数指针的链表,编译器更容易实现。

改变 x64 方式的原因之一是出于安全原因,病毒代码设法通过修补链表并引发异常来注入(inject)自身,从而允许其有效负载执行。在 XP SP1 中有针对这种情况的反制措施,但以效率为代价。 x64 的重新设计避免了这种成本。

好吧,您可以看到它的发展方向。无论如何,您都应该在平台目标设置为 x86 的情况下调试代码。这也启用了编辑 + 继续,这是一个非常有值(value)的调试帮助。这是 VS2010 项目的默认设置。仅针对 Release 版本切换到 AnyCPU。

关于c# - 无法在 64 位操作系统上的 Visual Studio 中从 catch 设置下一条语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4740918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com