0

我刚刚迁移到 Windows Ultimate 64 SP1,因为我的系统硬盘崩溃了。我安装了 Visual Studio 2005 SP1 和微软推荐的所有补丁。我终于从我的 SCM 中获得了我的源代码,但现在调试不会在我设置的任何断点上停止。这只是一个普通的 Winforms 应用程序,没什么特别的。

我做的第一件事是将构建目标更改为 x86。没有骰子。然后我去下载了 x64 的调试工具,仍然没有骰子。我将调试器设置为中断所有已处理和未处理的异常。也没有骰子。

我一直在查看谷歌搜索结果,但也没有运气。我已经在这里呆了3天了,没有运气。以前有人处理过这个问题吗?

更新:

这些项目都设置为调试(x86)。

调试会话开始时断点保持正常。

我已经重新安装了,也没有用。

我以管理员身份运行并关闭了 UAC。

我使用“附加到流程”附加到项目,并且能够以这种方式进入代码。我希望找出它为什么不自动附加,以避免每次都必须手动执行此操作。

4

4 回答 4

1

几个问题。

当您的代码启动时,断点是否会变成一个带有工具提示的空圆圈,指示断点不会被命中?或者它是否变成了一个带有工具提示的完整圆圈,指示它所附加的过程?

您可以尝试手动附加调试器,看看您是否获得任何牵引力。只需启动应用程序,一旦它运行,转到调试菜单并选择“附加到进程” - 选择您的应用程序正在运行的进程,然后单击“附加”。

不过,我运行 Vista64 没有问题 - VS2008。

于 2008-10-29T22:14:03.907 回答
1

这被列为Vista 上 VS2005 的已知问题(通过 MSDN):

标题: 提升进程的即时 (JIT) 调试将失败

说明:提升的进程无法通过 VS 2005 进行 JIT 调试。这包括系统进程,例如 IIS,以及通过选择“以管理员身份运行”启动的应用程序。

解决方法:必须手动附加调试器,然后调试器才能捕获未处理的异常或用户断点(System.Diagnostics.Debugger.Break、__debugbreak 等)。

于 2008-10-29T23:48:51.080 回答
0

我在 Windows Server 2008 x64 和 Vista x64 SP1 上使用具有相同补丁级别的 Visual Studio 2005,没有任何问题。

您是否以管理员身份运行它?当所有其他方法都失败时,请尝试卸载并重新安装。

于 2008-10-29T21:56:12.210 回答
0

确保项目设置为调试编译而不是发布编译,因为发布编译不包含您的调试信息。

于 2008-10-29T22:16:22.107 回答