[英]Debug a process started by the current project
我的Visual Studio解決方案包含兩個C ++控制台項目“ A”和“ B”,其中“ A”以編程方式開始B(使用CreateProcess())。
如果在創建“ B”點之后開始逐步瀏覽“ A”,那么如何在“ B”項目中檢測斷點並停止在該點?
目前,我只是在“ B”中的特定位置貼上“ DebugBreak()”,但這很煩人,因為通常會花一些時間彈出該窗口,使您可以使用VS實例調試應用程序,並且經常不會顯示當前實例,因此我必須啟動另一個需要花費更長時間的實例。
我無法使用附加到進程,因為'B'啟動,執行其操作然后關閉太快。
是否有任何標記要自動附加的項目的示例,例如使我可以在main的開頭有一個斷點(類似於在main的開頭有DebugBreak)?
我在MSDN上發現了此注釋:
即使子項目在同一解決方案中,調試器也不會自動附加到由已調試過程啟動的子進程。 要調試子進程:
- 啟動后附加到子進程。
- -要么-
- 配置Windows以在調試器的新實例中自動啟動子進程。
后者顯然可以通過某種注冊表干預來實現: 在調試器中自動啟動進程
Visual Studio團隊發布了一個Visual Studio擴展,該擴展允許自動將子進程附加到當前的調試器: 子進程調試Power Tool簡介 。
在Visual Studio 2013及更高版本的庫中可用。
因此,您可以使用Process.Start
從項目A啟動項目B,它將自動將調試器附加到第二個過程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.