如何调试C#进程

问题描述 投票:1回答:3

我要调试两个进程,(ProcessA.exe和ProcessB.exe)

在通常情况下,启动ProcessA时将启动ProcessB。 ProcessA是跨平台的exe。 ProcessB是C#应用程序。(Visual Studio 2010 Professional)。

我为调试ProcessB(C#)进行了以下操作

  1. 通过单击exe从C:\ Program Files \ Test启动ProcessA。
  2. ProcessB通过C:\ MyProjects通过Visual Studio 2010。附加过程

在Visual Studio 2010的“附加到进程”窗口中:,

附加到:作为“ Managed(v4。)代码)。

我将断点放在C#代码中。但是,即使没有调试,也永远不会执行断点,也不会执行ProcessB调用(即,从不同位置启动所有进程)

c#
3个回答
1
投票

[如果A通常启动B,则似乎应该让A开始B,然后在B开始后将Visual Studio附加到B进程。


1
投票

Microsoft Child Process Debugging Power Tool很好地处理了这种情况。它可以与Visual Studio 2013一起使用。

This blog post涵盖了一些必须设置的选项,主要是“如果要调试.NET代码,则必须选择启用混合模式调试”,但我建议通篇阅读。


0
投票

您应该附加到流程B,而不是流程A

您可以尝试以下操作:

  1. 启动ProcessA.exe
  2. VS->附加到进程窗口->附加到ProcessB.exe

如果需要调试进程A,则应使用带有本机调试的单独VS实例来完成。

© www.soinside.com 2019 - 2024. All rights reserved.