中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

VisualStudioDebug之?dāng)帱c(diǎn)操作的示例分析-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

為臨高等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及臨高網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、臨高網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

前言

調(diào)試技巧是衡量程序員水平的一個(gè)重要指標(biāo).掌握好的調(diào)試技巧與工具的使用方法,也是非常重要的.

Visual Studio 調(diào)試程序有助于你觀察程序的運(yùn)行時(shí)行為并發(fā)現(xiàn)問題。 該調(diào)試器可用于所有 Visual Studio 編程語言及其關(guān)聯(lián)的庫。 使用調(diào)試程序時(shí),可以中斷程序的執(zhí)行以檢查代碼、檢查和編輯變量、查看寄存器、查看從源代碼創(chuàng)建的指令,以及查看應(yīng)用程序占用的內(nèi)存空間。

斷點(diǎn),可以說是 Debug 過程中最常用的功能。

但是大家最熟悉最經(jīng)常使用的可能就是普通的斷點(diǎn)。其實(shí),關(guān)于斷點(diǎn),Visual Studio 有很多的高級(jí)功能,有些簡(jiǎn)直就是調(diào)試?yán)靼 ?/p>

1. 普通斷點(diǎn)


為了保證內(nèi)容完整性,還是要說下普通斷點(diǎn)。

設(shè)置普通斷點(diǎn)的方法很簡(jiǎn)單,就是在代碼行的左邊欄灰色區(qū)域點(diǎn)擊或者把光標(biāo)放在某代碼行,按下 F9。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析

如上圖所示,此時(shí)左邊欄出現(xiàn)的紅色圓點(diǎn)就代表了一個(gè)斷點(diǎn)。

按下 F5, Debugger 就會(huì)在此處停下來。

2. 條件斷點(diǎn)


不像是普通的斷點(diǎn),程序每次執(zhí)行都會(huì)停下來。條件斷點(diǎn)的意義是,只有在條件被滿足時(shí),Debugger 才會(huì)在此處停下來。

設(shè)置條件斷點(diǎn)一般的方法是在紅點(diǎn)處右鍵選擇條件或者把光標(biāo)放在紅點(diǎn)處,等待齒輪圖標(biāo)出現(xiàn)并點(diǎn)擊。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析

條件斷點(diǎn)設(shè)置窗口如下。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析

總共有三種類型的條件斷點(diǎn):

  • 條件表達(dá)式 (Conditional Expression)

  • 命中次數(shù) (Hit Count)

  • 篩選器 (Filter)

條件表達(dá)式


條件表達(dá)式也有兩種類型:

為 ture (Is ture)

如下圖示,此處設(shè)置的條件為: 當(dāng) testInt == 4 is ture 時(shí)命中斷點(diǎn)。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析

更改時(shí) (When changed)

如下圖示,此處設(shè)置的條件為: 當(dāng) testInt 被更改的時(shí)候命中斷點(diǎn)。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析

命中次數(shù)


命中次數(shù)在 Debug 循環(huán)語句時(shí)非常有用。

比如你懷疑程序出錯(cuò)點(diǎn)發(fā)生在 N 次循環(huán)之后或者某些次循環(huán),那么可以設(shè)置循環(huán)語句內(nèi)的命中次數(shù),讓它在某些次或者某次循環(huán)停下來,而不是每次都停下來。

如下圖,設(shè)置的條件為:讓它每隔一次循環(huán)斷下來。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析

篩選器


篩選器是用來限制斷點(diǎn)命中時(shí)所在的設(shè)備、進(jìn)程和線程。

比如,在一個(gè)多線程的程序中,你不必手動(dòng) GetThreadId,可以通過篩選器,設(shè)置讓它只在某線程中執(zhí)行到此處時(shí)停下來。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析

篩選器表達(dá)式用法為:

MachineName = "name"

ProcessId = value

ProcessName = "name"

ThreadId = value

ThreadName = "name"

多個(gè)表達(dá)式之間可以使用運(yùn)算符 & (AND), || (OR), ! (NOT) 連接 。

3. 追蹤斷點(diǎn)


在斷點(diǎn)設(shè)置窗口,除了條件,我們還可以看到操作 (Action)選項(xiàng)框。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析


操作 (Action) 的意義是設(shè)置追蹤點(diǎn) (Tracepoint)。

Tracepoint 相當(dāng)于是一種臨時(shí)的有 Trace 功能的斷點(diǎn),它會(huì)把消息打印到 Output 窗口。

勾選后面的繼續(xù)執(zhí)行 (Continue Execution),代表 Tracepoint 命中時(shí),Debugger 不會(huì)停下來,否則將會(huì)在此處停下來。兩種情況下,消息都會(huì)打印出來。

可以使用下面的關(guān)鍵字作為消息。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析

4. 函數(shù)斷點(diǎn)


在 Debug 菜單下,點(diǎn)擊新建斷點(diǎn),可以新建兩種類型的斷點(diǎn):函數(shù)斷點(diǎn) (Function Breakpoint)和數(shù)據(jù)斷點(diǎn)(Data Breakpoint)。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析


函數(shù)斷點(diǎn)是通過函數(shù)名設(shè)置斷點(diǎn),當(dāng)程序執(zhí)行到該函數(shù)的時(shí)候斷點(diǎn)斷下來。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析

5. 數(shù)據(jù)斷點(diǎn)


緊接上面,這里講下數(shù)據(jù)斷點(diǎn)。

數(shù)據(jù)斷點(diǎn)的意義是,讓程序在當(dāng)某處地址指定字節(jié)發(fā)生改變的時(shí)候中斷下來。它只有在 Break Mode 下才可以設(shè)置。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析

地址欄可以用具體的內(nèi)存地址,也可以用表達(dá)式來代表內(nèi)存地址。例如,可以使用 &avar,讓程序在當(dāng)變量 avar 內(nèi)容發(fā)生改變的時(shí)候中斷下來。

6. 在 Call Stack Window 設(shè)置斷點(diǎn)


也許你不知道,是可以在 Call Stack 窗口設(shè)置斷點(diǎn)的。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析

當(dāng)你在查看函數(shù)的調(diào)用關(guān)系的時(shí)候,想在這一些列的函數(shù)中快速設(shè)置斷點(diǎn),那么其實(shí)很簡(jiǎn)單:在 Call Stack 窗口,點(diǎn)擊想要設(shè)置斷點(diǎn)的函數(shù)所在的行,按下 F9 即可。

7. 在 Disassembly Window 設(shè)置斷點(diǎn)


還可以在 Disassembly 窗口設(shè)置斷點(diǎn)。但前提必須是 Break Mode 下。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析

反匯編窗口設(shè)置斷點(diǎn)的方式跟在源代碼中設(shè)置斷點(diǎn)的方式相同,只要在代碼左邊欄邊緣處點(diǎn)擊一下,紅色圓點(diǎn)就出現(xiàn)了。

8. 斷點(diǎn)管理


我們前面所設(shè)置的所有斷點(diǎn)都會(huì)出現(xiàn)在斷點(diǎn)窗口 (Breakpoints Windows)。

Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析

在這里,可以對(duì)所有的斷點(diǎn)進(jìn)行管理,比如批量啟用、禁用、刪除等,還可以在程序運(yùn)行過程中,查看斷點(diǎn)的命中狀態(tài)。

當(dāng)你的工程非常大,Debug 時(shí)設(shè)置了很多的斷點(diǎn)的時(shí)候,它會(huì)非常有用。


關(guān)于“Visual Studio Debug之?dāng)帱c(diǎn)操作的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

當(dāng)前題目:VisualStudioDebug之?dāng)帱c(diǎn)操作的示例分析-創(chuàng)新互聯(lián)
當(dāng)前地址:http://www.rwnh.cn/article40/copceo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、用戶體驗(yàn)做網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
东乡族自治县| 永川市| 化隆| 青阳县| 固原市| 西林县| 清镇市| 彰化市| 湘潭县| 阜阳市| 梓潼县| 石首市| 绍兴县| 黎城县| 繁昌县| 太仓市| 莱阳市| 石台县| 马山县| 邳州市| 金秀| 金湖县| 偃师市| 遂平县| 改则县| 抚州市| 汽车| 安仁县| 新巴尔虎右旗| 中牟县| 闽侯县| 西丰县| 河池市| 正安县| 乡宁县| 晋宁县| 喀喇沁旗| 靖西县| 中超| 共和县| 息烽县|