2012-03-06 49 views
1

我想調試兩個進程,(ProcessA.exe和ProcessB.exe)如何調試C#進程

在通常情況下,啓動ProcessA時將啓動ProcessB。 ProcessA是一個跨平臺的exe。 ProcessB是C#應用程序(Visual Studio 2010 Professional)。

我做了調試進程B(C#)

  1. 從下開始ProcessA如下:單擊exe \ Program Files文件\測試。
  2. 進程B通過Visual Studio 2010,從C:\ MyProjects下。附加流程A.

在Visual Studio 2010中附加到進程窗口:,

附加到:爲「管理(V4)代碼)

我把C#代碼中的破發點,但破發點。從未得到也執行進程B的呼叫是沒有得到沒有調試也執行(即,開始從不同的地點的所有進程)

+0

我假設你有兩個進程部署.pdb文件。 – 2012-03-06 23:50:12

回答

1

如果A正常啓動B,則好像你應該讓一個啓動B,則附加的Visual Studio到B過程已經開始了。

+0

ProcessA和進程B兩者都是獨立applications.But我會嘗試你的建議 – Ullan 2012-03-06 23:40:18

0

你應該重視進程B,而不是進程A

你可以嘗試以下方法:

  1. 開始ProcessA.exe
  2. VS->附加到進程窗口 - >附加到ProcessB.exe

如果你需要調試進程A,這個sh應該用一個獨立的VS實例進行本地調試。

0

如果您可以更改ProcessB的代碼,我會建議添加對參數「-d」或「-debug」的支持,以觸發MessageBox出現在Main方法的開始處以暫停執行並允許您附加到過程。連接完畢後,單擊MessageBox中的確定繼續。在MessageBox調用後不久添加一個調試斷點。

if (arguments.Debug) 
{ 
    // Make it easy to find in the process list. 
    MessageBox.Show("Attach to process now.", "Attach to this process!"); 
}