|
由于上篇文章漏了一些比較重要的知識,在此文中補充。
斷點篇
命中次數(shù)(Hit Counts)
右擊斷點,可以設置Hit Counts(命中次數(shù)),會彈出如下的對話框:
當條件滿足的時候斷點會被命中(即即將被執(zhí)行),這個命中次數(shù)是斷點被命中的次數(shù)。默認是始終break,選項有如下的幾種:始終break;當命中次數(shù)達到多少次時break;當命中次數(shù)是多少的倍數(shù)時break;當命中次數(shù)大于等于多少的時候break。
于是在上篇中的條件也可以這樣實現(xiàn),設置命中次數(shù)等于50的時候break,按F5后,斷點被觸發(fā),此時i=50。
斷點過濾器
我們可以限制斷點在特定的處理器和進程中。可以設置機器名、進程id、進程名、線程id、線程名中的某些條件來過濾一些斷點。
注意:ThreadId需要特別說明一下,ThreadId并不是托管程序中,.NET 框架中System.Threading.Thread.ManagedThreadId,兩者不能等同。簡單來說,ManagedThreadId是線程在CLR中的標識符,而ThreadId卻是線程在操作系統(tǒng)中的標識符。因此ThreadId需要從調(diào)試器中的“Threads”窗口中獲取。
斷點條件
我們可以設置斷點達到的條件,如下圖,我們設置表達式為i==5(注意是判相等,而不是賦值的等于),按F5,斷點再次被觸發(fā),此時i=50。
還有一個選項是已經(jīng)被改變,則里面條件是具體的變量,如我們的代碼如下:
private void ConditionDebug()
{
int hitCount = 0;
for (int i = 0; i < 100; i++)
{
if (i==49)
{
hitCount = 1;
}
}
Console.Write("Hit Count={0}", hitCount);
}
NET技術:C#調(diào)試心經(jīng)(續(xù)),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。