2009-06-08 84 views
7

我要啓動處於暫停狀態的過程。有沒有辦法通過僅使用Windows XP附帶的標準工具來實現這一點?有沒有輕量級的第三方工具?有沒有辦法在暫停狀態下啓動進程?

問題我正在嘗試解決:
我有一個應用程序,我想通過使用Visual Studio 2005進行調試。我有必要的* .pdb文件進行調試構建,並且我擁有從這些*引用的所有源。 pdb文件。我不想創建一個爲我運行該應用程序的空白解決方案,因此我試圖在從其他位置啓動後重視此過程。我想調試的代碼的一部分是在進程啓動的時候執行的,所以我想在掛起模式下運行它,附加一個調試器然後恢復它。

+0

我寫了一個工具,它允許這樣做:載荷大小://github.com/burlachenkok/process_tool(有些strnge傢伙 - 馬丁克萊頓,McCygnus,維加,斯蒂芬Leppik刪除我的帖子) – bruziuz 2017-10-19 21:37:58

回答

8

我不太確定你想要什麼從你的問題做的,但也許使用附帶XP的NTSD調試器會幫你做你想做的(默認情況下,NTSD會加載過程,並在停止第一條指令)。


從你的問題的最新信息,我建議下載微軟的Debugging Tools for Windows package和調試在WinDbg中啓動的東西-the一些事情,Visual Studio是在好轉,但也有一些事情, WinDbg比Visual Studio更好(WinDBg是一個非常強大的調試器)。

或者你可以簡單地在Visual Studio調試器(無解)在命令行中加載程序:

devenv /debugexe yourprog.exe <arguments> 
+0

我想指出的是,在該示例中,您與yourprog.exe位於同一文件夾中。這很重要,因爲[工作目錄](https://en.wikipedia.org/wiki/Working_directory)將被設置爲當前目錄。這是大多數應用程序所期望的,因爲這是默認情況下Explorer所做的。如果你使用exe的完整路徑,並且你站在不同的路徑(比如c:\),那麼你需要等待VS啓動,然後右鍵單擊解決方案中的exe,選擇屬性並設置那裏的工作目錄。您也可以在那裏設置命令行參數。 – nohwnd 2016-11-15 09:28:04

7

您可以輕鬆地編寫一個應用程序,將做到這一點你。使用CreateProcess()函數,在dwCreationFlags參數中設置CREATE_SUSPENDED標誌。

對於您的特定任務,應用程序可以執行以下操作:調用CreateProcess()以啓動應用程序並檢查錯誤代碼,然後調用MessageBox()告訴您附加調試器,然後按下按鈕在消息框(MessageBox()返回)調用ResumeThread()來恢復應用程序。

+0

我知道我可以,但我認爲使用標準工具(如果有的話)會更好。 – okutane 2009-06-08 07:21:05

+0

我寫了一個工具,它允許這樣做:載荷大小://github.com/burlachenkok/process_tool(有些strnge傢伙 - 馬丁克萊頓,McCygnus,維加,斯蒂芬Leppik刪除我的帖子) – bruziuz 2017-10-19 21:38:38

相關問題