【问题标题】:Which process to attach to debug the .NET winforms exe in visual studio 2008在 Visual Studio 2008 中附加哪个进程来调试 .NET winforms exe
【发布时间】:2017-03-18 16:17:12
【问题描述】:

我正在使用 Visual Studio 2008(32 位。我的机器是 64 位)。我已经构建了一个 Windows 窗体 EXE 应用程序。现在我想在 Visual Studio 中附加该过程,这样当我从项目的 Debug/Release 文件夹运行 EXE 时,它应该会遇到我在当前在 Visual Studio 2008 中打开的代码中设置的断点。

我可以看到有一个名为 MyApplicationName.vshost.exe 的进程,但附加按钮是灰色的。

我想调试 EXE 的原因是,我想在运行时调试 EXE。当我从 Debug/Release 文件夹运行 EXE 时出现异常,但是当我运行代码时,我没有得到任何异常

请让我知道我应该在 VS2008 中附加哪个进程,以便当我从项目的 Debug/Release 文件夹运行我的 EXE 时,它应该会到达我在我的代码中设置的断点,该代码当前在 Visual Studio 2008 中打开.

【问题讨论】:

  • 为什么不直接从vs运行应用呢?但除此之外,您仍然应该能够将 vs 附加到正常进程,如果您构建了一个正常的小型应用程序,它们不应该有很多。你确定你从 bin/debug 文件夹中执行了正常的 exe 文件吗?
  • 同意@MetaColon,这似乎不是一个正常的工作流程。如果有帮助,您可以将Debugger.Break() 调用编译到您的应用程序中(可能使用命令行开关或条件编译进行保护)。当该语句运行时,Windows 将询问您是否要附加调试器,您可以选择一个正在运行的 Visual Studio 实例或启动一个新实例。
  • @MetaColon 原因是我想调试 EXE 运行时。当我从 Debug/Release 文件夹运行 EXE 时出现异常,但是当我运行代码时,我没有得到任何异常。
  • @TomBlodget 在我的代码中添加了“Debugger.Break()”。我收到“无法开始调试”的错误。远程机器上的远程调试监视器已关闭
  • Heisenbugs 是一个挑战。维基百科有一小部分关于分辨率。

标签: c# vb.net visual-studio-2008 visual-studio-debugging


【解决方案1】:

如果你有源代码,我也建议你直接调试你的应用程序,你可以使用Debug->Exceptions窗口下的Exception throw,它可以帮助你抛出异常消息。

对于宿主进程,如果可能,您可以在项目属性下禁用它:

如果你必须使用attach to process,请以管理员身份运行VS,然后直接附加到你的进程:

【讨论】:

  • @Swad,对您有帮助吗?如果是解决方案,请标记它。如果没有,请分享它的最新信息:)
猜你喜欢
  • 1970-01-01
  • 2013-02-05
  • 1970-01-01
  • 2013-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
相关资源
最近更新 更多