【问题标题】:Visual Studio: automatically attach debugger to process as soon as process startsVisual Studio:进程启动时自动将调试器附加到进程
【发布时间】:2023-03-07 16:57:01
【问题描述】:

是否可以在进程启动时将 Visual Studio 附加到该进程?理想情况下,我希望 VS 监听开始的进程,直到满足某个条件,此时它会立即将自己附加到该进程。

在其他堆栈溢出问题中,我看到了从我自己的 Visual Studio 实例启动进程的建议,但在我的情况下这是不可能的。我需要将 VS 附加到另一个带有 SSIS 项目的 VS 实例中的调试器线程。调试器线程必须由该 VS 实例启动。我无法以足够快的速度手动将我的 VS 实例附加到进程,以调试在线程开始时立即发生的某些进程。

【问题讨论】:

  • Launching the Debugger Automatically 已经很老了,但我相信仍然有效。
  • 如果您将其发布为答案而不是评论,我可能会将其标记为答案。在我的示例情况下,它会导致 SSIS 项目崩溃(“无法与调试主机进程通信。无法获取子进程活动对象。”),但它完美地回答了线程的主要问题。

标签: c# visual-studio ssis


【解决方案1】:
System.Diagnostics.Debugger.Break()

【讨论】:

  • 如果可以的话,我会给这 10 个赞,因为它看起来非常有用,并且可能是我从现在开始编写的大部分代码中的内容。但是,在这种特殊情况下,它会导致 SSIS 调试主机在没有明确错误报告的情况下崩溃。由于我尝试附加的进程本身就是一个调试主机,因此可能会出现一些复杂情况。
  • 很高兴该信息很有用。太糟糕了,它对您非常特殊的情况没有帮助。我不知道这里有什么帮助。无论如何,System.Diagnostics.Debugger 对象有一些有用的成员,Break() 是最常用的。
【解决方案2】:

这不是针对所有情况的解决方案,但简单的方法是在开始时添加此代码。 我在远程站上没有 VS,但我能够远程连接,下面的线路节省了我的一天 对于 Windows 应用程序

Windows.Forms.MessageBox.Show("wait attach process and click ok");

对于控制台应用

Console.WriteLine("wait attach to process and press any key");
Console.Readkey();

【讨论】:

    猜你喜欢
    • 2012-03-21
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多