我試圖調試一個由另一個產生的錯誤進程。我試過__debugbreak(); __asm int 3;
圖像文件執行,但似乎沒有任何工作。有沒有人有任何想法如何從代碼附加調試器?C++如何調試另一個spwaned的進程
回答
一個我有時用的是
的MessageBox(NULL, 「附加」, 「附加」,MB_OK)
您需要在SDK和的#include 「WINDOWS.H」 鏈接但是關於它的。一個消息框將彈出並等待,直到您單擊確定。只需在那一刻連接調試器,設置斷點並單擊確定。
只要沒有來自產卵過程的時間關鍵看門狗等待衍生過程的回覆,它就會工作。如果有,您可能需要增加超時時間,以便啓動VS並附加。
爲什麼你沒有使用DebugBreak而不是__debugbreak()?
這裏有一個description of the differences
我有情況下就出現在調試器沒有啓動,但實際上有一個隱藏的對話框,提示我要什麼VS會議/版本附着。確保通過窗口進行替換,以確保這不會發生在你身上。
如果沒有其他作品我有時在衍生進程的開始使用一招 我把
while(1)
{
Sleep(1000); // +Breakpoint
}
附加到該進程啓動後,並使用「設置下一條語句」去傳遞循環。
我通常用它來調試Windows服務的的OnStart()
確保問題解決後,刪除此代碼。
Visual Studio對CreateProcess使用DEBUG_ONLY_THIS_PROCESS標誌。您可以切換到windbg,也可以在代碼中附加調試器。例如。獲取活動的VisualStudio.DTE.11.0對象,然後調用_DTE :: Debugger獲取調試器,並調用Debugger :: LocalProcesses獲取進程列表。找到所需的過程(例如通過文件名或創建時間),然後調用Process :: Attach。
有沒有辦法讓Visual Studio調試一個進程和它所產生的所有進程? – bames53
在Microsoft Connect上看到很多請求,不採取任何行動,必須很難重新設計。 –
- 1. 如何調試C#進程
- 2. 調試器如何窺探另一個進程的內存?
- 3. c:如何從另一個進程調用進程回調函數
- 4. 如何調試在另一個進程(2.exe)下運行的進程(1.exe)?
- 5. 如何在調試模式下運行另一個進程?
- 6. 調試另一個進程的一部分的項目組合
- 7. 從另一個進程調用一個方法C#
- 8. 調用另一個進程的Python中
- 9. 由另一個產生的調試進程
- 10. C++試圖調用另一個對象
- 11. 將stderr從一個進程寫入另一個進程C++/unix
- 12. 如何從java程序中調用另一個java進程
- 13. 如何使一個進程等待另一個進程
- 14. 如何在Visual Studio 2010中調試從另一個進程啓動的C#.NET應用程序
- 15. 調用另一個類的線程(C#)
- 16. 如何在Linux中讀取另一個進程的輸出C
- 17. 如何發送擊鍵到objective-c中的另一個進程
- 18. 在另一個進程上調用SetProcessDEPPolicy?
- 19. C#如何檢測如果文件是在另一個進程
- 20. 從C++中的另一個進程解鎖一個線程
- 21. 如何調試一個扣球ASP.NET進程的內存轉儲?
- 22. 如何在eclipse中附加一個進程來調試多進程程序
- 23. 使用c#從另一個進程調用函數
- 24. 使用C調用另一個進程時避免UAC提示
- 25. 如何調試一個c#二進制文件
- 26. 如何讓一個進程在c#/ .net的另一個進程中觸發一個事件?
- 27. 從另一個Visual Studio項目調試Visual Studio C程序
- 28. 如何調試C程序
- 29. 如何將一個頁面從一個進程複製到另一個進程?
- 30. 如何關閉另一個進程從C#
爲什麼你需要從你的代碼中附加調試器? 難道你不能只是定期附加處理? – asafrob
該進程是從另一個進程派生的。調試器附加到原始調試器,我需要調試產生的調試器。 – qballer