[英]Step line when debugging multithreaded application
在調試Visual Studio中的多線程程序時,基於“跨過”問題,請考慮以下情形:
運行一些代碼的線程A啟動線程B,並一直進行到線程A需要線程B的結果為止。為了理智,讓我們假設以下方案:
Thread A
line 1 // <---- Starts Thread B
line 2
line 3 // <---- Breakpoint
line 4
line 5 // <---- Wait for Thread B
Thread B
line 1
line 2 // <------ When the code breaks, stoped here
line 3
line 4
一點擊“跳過”按鈕會發生什么?
我可以想到三件事:
如果要求我猜測,我會選擇選項3。
在那一行之后,有一種方法可以像我的選項2一樣逐行調試線程? 我在問是否有C ++調試器能夠停止所有線程並逐個逐行執行 ?
Windbg的step命令p
允許您指定要繼續執行的線程,而所有其他線程保持凍結狀態。 參見http://msdn.microsoft.com/zh-cn/library/windows/hardware/ff553496(v=vs.85).aspx
具體看一下命令開頭的可選[~ Thread]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.