首页 > 解决方案 > 如何使用断点调试具有多个 dll 的 exe

问题描述

myapp.exe在另一个程序运行一些复杂的逻辑之后,我有一个。我想像myapp.exeVisual Studio 一样最好使用断点来调试问题。实现这一目标的方法是什么?该 exe 是一个控制台应用程序,并在现场运行。这不是一个正在运行的进程,所以我无法附加调试器。

我想要的预期行为是:

标签: c#visual-studiodebuggingdll

解决方案


只需使用System.Diagnostics.Debugger.Launch()要附加调试器的位置即可。您可以将它放在您想要的断点位置之前。Windows 会询问您要附加什么调试器。

另一种方法是检查 System.Diagnostics.Debugger.IsAttached 属性并等待这样的调试器(轮询):

while (!Debugger.IsAttached)
{
    Thread.Sleep(500);
}

应用程序将循环,直到您附加调试器(在 Visual Studio 中,通过附加到进程命令 Ctrl+alt+P )。同样,只需在循环之后或什至在循环中放置一个断点,就完成了。

这是一种用于调试 Windows 服务应用程序的众所周知的方法,对您的意图也很有用。


推荐阅读