2011-03-29 72 views
2

我已經遞交了一個應用程序來支持,並且我試圖找出如何去做。我確實有源代碼,可以進行一些更改,但我顯然不想完全更改應用程序的體系結構。調試一個動態加載的可執行文件

應用程序是在9名不同的項目構成的VS2010溶液。主要的是一個Windows窗體應用程序,但它在其他線程中分離出來。

這裏的困難。儘管不同的項目是同一解決方案的一部分,但它們是單獨的可執行文件,而不是DLL。當主程序啓動其中一個項目時,它通過創建一個新進程,將可執行文件名,啓動參數和其他各種參數設置到process.StartInfo對象中,然後調用process.Start()來完成。

如何設置斷點並調試下屬的可執行文件?直到它們被加載後我才能附加到它們,但是直到process.Start()被調用之前,它們不會被加載,因此太遲了。有沒有方法調用,我可以插入到主程序,讓它加載可執行文件(所以我可以在它設置斷點)之前,它實際上開始執行?

謝謝。

回答

0

您能夠重新編譯其他可執行文件?如果是這樣,你有沒有嘗試把DebugBreak放在合適的地方? (或_asm int 3)。

不能加載過程(有效),因爲根據定義,它會從它開始之前你在調試一個不同的ADDRES空間中運行。

+0

謝謝,皮特。順便說一句,C#語法(或者至少對我有用)是System.Diagnostics.Debugger.Break(); – 2011-03-30 13:14:30

0

一個簡單的解決方案,可以將調用DebugActiveProcess功能,每一個參與其中的應用程序過程的「主要」功能。

相關問題