本篇博客是VisualStudio斷點調試系列文章的一部分,在本篇文章裏,咱們將展現函數斷點在VS中的怎麼樣爲你節省時間的特性。html
處理重載web
你想調試一個指定的函數,可是這個函數有一些重載。一個選擇是找到全部的重載並分別設置斷點。api
若是有不少重載,那麼會很是消耗時間。另一個選擇是使用函數斷點。函數
在咱們的例子裏(with code available to download),你想停在函數IsPrime()上,它有2個重載。post
首先咱們要去斷點窗口裏Debug->Windows->Breakpoints 建立一個斷點,點擊「new」debug
而後點擊 「Break at Function…」 呼出一個新斷點對話框。 你可能注意到也能夠用快捷鍵Ctrl+B.調試
輸入函數名「IsPrime」 而後點OK。這樣它將會把咱們帶到新的對話框,這裏有全部匹配的方法函數,咱們能夠快速的選擇。能夠經過點擊All按鈕來全選。code
如今我運行程序,能夠命中這個斷點在這個版本的調用的 IsPrime函數 。component
函數斷點另一種有用小竅門是設置斷點在不是現成的代碼裏。下面舉個例子,咱們用C++實現(available for download)。這個例子使用ATL而後咱們想debug ATL代密碼看看他們怎麼工做。而ATL代碼能夠用,你不可能在你的IDE裏打開它。即時你是這麼作了,你大概須要一段去找在哪設置斷點。server
你能夠經過使用函數斷點節省你一些時間。在這個例子裏,我用CComPtr 與對象CObject1。設置斷點在ATL裏我用的函數上。同上呼出這個斷點窗口。
若是我輸入ATL::CComPtrBase<CObject1>::Attach函數名,我將設置斷點在這個函數上。我也能夠選擇用通配符輸入ATL::CComPtrBase<CObject1>::*來設置斷點在全部匹配的函數上。當我這樣作以後,這些斷點出如今斷點窗口,有三個。
如今我運行程序,我將會停在這些斷點處,VS會把我帶到正確的源代碼位置上。