2008-09-16 58 views

回答

0

我假設你有源頭的1.exe(如果你正在調試它),然後只需插入開頭附近的語句,將導致它掛在足夠長的時間來附加一個調試器。 (如果你絕望,這不是互動的getch()。)

在附着,就跳到下一個聲明,讓他走了。

0

你可以把一些預處理命令建立調試 - 只記得建立在釋放模式的版本:

#ifdef DEBUG 
Thread.Sleep(10000); 
#endif 
6

我建議採取同樣的做法與在這種情況下,NT服務。他們也將啓動並且通常不會給您足夠的時間來爲啓動例程附加調試器。

詳細描述如下:http://www.debuginfo.com/articles/debugstartup.html

總之你添加第二EXE註冊表項:

HKLM \ SOFTWARE \微軟\的Windows NT \ CURRENTVERSION \圖像文件執行 選項\ 2.exe調試= 「C:\ progs的\ MSVS \ common7 \ IDE \ devenv.exe的 /debugexe」(REG_SZ)

更改c:\ progrs \ msms \以匹配您的設置。

希望有所幫助。

0

怎樣的1.exe推出?如果您可以使用CreateProcess()啓動它,則可以啓動處於掛起狀態的進程,附加調試器,然後釋放新進程。

0

如果您願意考慮使用Visual Studio以外的調試器,則WinDBG可以自動調試子進程(僅限本機代碼)。

0

你沒有提到你使用的是什麼語言。但是,如果您使用C#或VB.NET,則可以添加Debug.Break()或Stop以觸發提示將調試器附加到進程。

或者如上所述,只需使用類似Console.Readline()或MessageBox.Show()的東西來暫停進程的啓動,直到您可以將調試器附加到它。

相關問題