应用程序启动时Visual Studio远程调试

Tim*_*Tim 22 c# remote-debugging visual-studio-2010 c#-4.0

据我所知,使用远程调试器的唯一方法是启动目标应用程序,然后通过Visual Studio连接到它.有没有办法从程序的最开始捕获所有断点?

我需要调试程序中的代码,我永远无法快速连接调试器以捕获执行代码.

Ben*_*enR 13

如果您可以更改代码,请尝试在应用的起点注入以下代码:

System.Diagnostics.Debugger.Launch();
Run Code Online (Sandbox Code Playgroud)

当该行被命中时,它将提示您附加调试器,有效地等待您的响应.由于您使用的是远程调试器,因此您应该能够在该点附加,然后取消对话框.希望这可以帮助.

  • 不工作。应用程序将正常启动,因此无法调试应用程序启动。 (2认同)

Dar*_*nas 11

解决方案

System.Diagnostics.Debugger.Launch 
Run Code Online (Sandbox Code Playgroud)

也不适合我.但是,我设法在我的应用程序中解决了我的问题,启动了以下内容:

while (!System.Diagnostics.Debugger.IsAttached)
    System.Threading.Thread.Sleep(100);
Run Code Online (Sandbox Code Playgroud)

这样,应用程序将等待调试器连接.

  • 这实际上是一个很好的解决方案。打包在 ```#ifdef DEBUG``` 和 ```endif``` 中,它不会干扰发布版本,并且当我在我的机器上调试时可以完美地工作。但当我需要远程调试时,它只是等待。谢谢! (2认同)

小智 7

在目标机器上设置与本地机器上的 Visual Studio 年份相匹配的 Visual Studio 远程调试器。

请注意为您提供服务器名称的行。

在 Visual Studio 的本地机器上,打开启动项目的属性,然后打开调试部分。

选中“使用远程机器”框,然后在文本字段中输入您从 Visual Studio 远程调试器获得的服务器名称。

在“启动操作”下,选择“启动外部程序”。然后将您希望在目标计算机上启动的 .exe 的路径放入该字段中。

现在,当您从本地机器按下启动按钮时,它将在连接了调试器的目标机器上启动程序。