gpt4 book ai didi

vb.net - 如何在 Visual Studio 中跨应用程序重新启动进行调试?

转载 作者:行者123 更新时间:2023-12-01 15:53:44 25 4
gpt4 key购买 nike

我正在 Visual Studio 2010 中构建一个 Visual Basic 应用程序。我的一些选项只能在重新启动应用程序时应用。

当应用程序正常运行时,我没有遇到过一次崩溃。当我应用设置、手动退出并重新启动时,它也不会崩溃。另一方面,一旦我尝试从应用程序自动重启,我就会在 5-10 次重启中遇到一次异常。

我已尝试运行调试器,但一旦应用程序重新启动,Visual Studio 调试器就会关闭,并且在应用程序再次启动时不会重新打开。它也不会以相同的配置再次启动。似乎调试器启动的应用程序配置和手动启动的应用程序配置文件不同。

有什么办法可以解决这个问题吗?在重新启动时保持调试器?还是我应该采取不同的策略?

最佳答案

方法 1:从应用程序中附加调试器

如果应用程序有时在启动时崩溃,请添加对 Debugger.Launch() 的调用在应用程序的 Startup event .这样做会导致 Visual Studio 打开一个窗口,您可以在其中选择附加其调试器。

您可以查看 Debugger.IsAttached property以确定是否已附加调试器。

订阅Startup事件的步骤:

  1. Solution Explorer 中右键单击您的项目,然后按 Properties

  2. 转到应用程序 选项卡。

  3. 查看应用程序事件

  4. 在左侧组合框中选择 MyApplication (events)

  5. 在右边的组合框中选择Startup

代码:

Imports System.Diagnostics

...

Private Sub MyApplication_Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup
If Debugger.IsAttached = False Then
Debugger.Launch()
End If
End Sub

方法 2:让 Windows 启动调试器,进而启动您的应用程序

另一种解决方案是将您的应用程序添加到Image File Execution Options 注册表项,这样您就可以指定一个调试器来为您启动应用程序。

注意:将您的应用程序添加到Image File Execution Options 会导致 Windows 自动启动指定的调试器而不是每当您尝试打开应用程序时。您的应用程序的路径作为命令行参数传递,然后由调试器启动您的应用程序,并将其自身附加到它。

Malwarebytes在他们的博客上有一些关于图像文件执行选项的信息:An introduction to Image File Execution Options .

这是你的做法:

  1. 打开 Regedit

  2. 导航到 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options 键。

  3. 找到包含您的应用程序名称的 key (如果存在),或者创建一个格式为 yourApplicationName.exe 的新 key 。

  4. 创建一个新的 String 值 (REG_SZ) 并将其命名为 debugger

  5. debugger的值设为vsjitdebugger.exe

  6. 开始调试吧!

有关详细信息,请参阅:How to: Launch the Debugger Automatically - MSDN

关于vb.net - 如何在 Visual Studio 中跨应用程序重新启动进行调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45063233/

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