欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Visual Studio Debug實(shí)戰(zhàn)教程之基礎(chǔ)入門

 更新時(shí)間:2018年09月18日 11:47:48   作者:紅猴子  
這篇文章主要給大家介紹了關(guān)于Visual Studio Debug實(shí)戰(zhàn)教程之基礎(chǔ)入門的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

在過(guò)去,我已經(jīng)寫過(guò)好幾篇關(guān)于調(diào)試 / debug / 解 Bug 的文章,但都是從宏觀的角度上去講的,并沒(méi)有針對(duì)哪種工具做具體深入的剖析。

在軟件開(kāi)發(fā)周期中,測(cè)試和修正缺陷(defect,defect與bug的區(qū)別:Bug是缺陷的一種表現(xiàn)形式,而一個(gè)缺陷是可以引起多種Bug的)的時(shí)間遠(yuǎn)多于寫代碼的時(shí)間。通常,debug是指發(fā)現(xiàn)缺陷并改正的過(guò)程。修正缺陷緊隨debug之后,或者說(shuō)二者是相關(guān)的。如果代碼中存在缺陷,我們首先要識(shí)別造成缺陷的根本原因(root cause),這個(gè)過(guò)程就稱作調(diào)試(debugging)。找到根本原因后,就可以修正缺陷。

工欲善其事,必先利其器,一個(gè)強(qiáng)大的調(diào)試工具可以幫助我們快速的發(fā)現(xiàn)問(wèn)題、解決問(wèn)題。而能不能很好的利用這些工具則是菜鳥(niǎo)程序員和高手程序員在工作方法上的一大區(qū)別。

所以,接下來(lái),我打算從我最熟悉也是用戶體量最大的 Visual Studio 開(kāi)始入手,動(dòng)手寫關(guān)于 Debug 的系列教程。

Visual Studio提供了很多用于調(diào)試的工具。有時(shí)調(diào)試需要花費(fèi)大量時(shí)間去識(shí)別root cause。VS提供了許多輔助調(diào)試的便捷的工具。調(diào)試器(Debugger)包含錯(cuò)誤列表、添加斷點(diǎn)、可視化的程序流程、控制執(zhí)行流程、Data Tips、監(jiān)視窗口(watch windows)、多線程調(diào)試、線程窗口、并行調(diào)試概覽以及IntelliTrace調(diào)試概覽。我希望本文能夠?qū)φ{(diào)試功能的使用者有所裨益。

雖說(shuō) MSDN 上已經(jīng)啥都有了,但是赤裸裸的英文世界還是擋住了不少的開(kāi)發(fā)者,這里我希望能用最平實(shí)易懂的語(yǔ)言讓大家快速上手 VS 的調(diào)試功能。

它適用于 C#,C/C ++,Visual Basic,JavaScript 等大部分 VS 支持的編程語(yǔ)言。

說(shuō)明一下,此教程主要參考 MSDN,但同時(shí)也添加了我自身在使用過(guò)程中積累的一些經(jīng)驗(yàn)。

好了,廢話不多說(shuō),進(jìn)入主題。

本次教程將介紹 Visual Studio 入門階段的一些 Debug 功能。

與大多數(shù) IDE 一樣,Visual Studio 有兩個(gè)調(diào)試階段:

  • 一是發(fā)現(xiàn)并解決 Build 過(guò)程中的項(xiàng)目和編譯錯(cuò)誤。
  • 二是發(fā)現(xiàn)并解決 Run 過(guò)程中的動(dòng)態(tài)錯(cuò)誤。

Build 階段

Build Solution

Build 一個(gè) Solution 先從配置開(kāi)始。

Solution 的配置有兩種基本類型: Debug 和  Release。

它們的區(qū)別如下:

Debug Release
生成的可執(zhí)行文件未經(jīng)優(yōu)化,大而慢,內(nèi)含開(kāi)發(fā)人員添加的調(diào)試信息,不會(huì)被投入市場(chǎng)使用。 生成的可執(zhí)行文件經(jīng)過(guò)了優(yōu)化,小而快,可以被投入市場(chǎng)使用。

默認(rèn)配置為 Debug。

除此之外,還可以指定目標(biāo)平臺(tái),如 x86(32 位 Intel CPU)、x64(64 位 Intel CPU)和 ARM(ARM CPU,僅支持某些應(yīng)用類型)。

若要更改此值,請(qǐng)單擊平臺(tái)下拉列表,選擇其他平臺(tái)或「配置管理器...」

 

配置好工程之后,就可以開(kāi)始 Build 了。

最簡(jiǎn)單的方法是按下 F7,也可以在菜單中選擇 Build Solution。

 

2、Output 窗口

Build 過(guò)程及其結(jié)果將顯示在 Output 窗口。

這里會(huì)顯示原始編譯器輸出,如Error,Warning 等。可以單擊 Error 或 Warning 轉(zhuǎn)到對(duì)應(yīng)的代碼行。

這是一個(gè) Build 成功的例子。

 

3、Error List 窗口

Build 過(guò)程中出現(xiàn)的 Error 和 Warning 的詳細(xì)信息可以在 Error List 窗口中查看。

單擊某一項(xiàng) Error 或者 Warning,可以轉(zhuǎn)到對(duì)應(yīng)的發(fā)生 Error 或者 Warning 的代碼行。

如上圖,紅色波浪線代表了 Error ,可以將鼠標(biāo)懸停在上方獲取出現(xiàn)此 Error 的詳細(xì)信息。

有的時(shí)候,并不是所有的 Error 你一眼就能看出其中的問(wèn)題,可能會(huì)出現(xiàn)一些只對(duì)編譯器才有意義的術(shù)語(yǔ)或者代碼,例如:

fatal error C1189: #error ...

此時(shí),很多人的做法是把這段話復(fù)制粘貼到百度/谷歌搜索欄再去搜索。其實(shí)你未必要去做這樣的重復(fù)勞動(dòng)。

也許你不知道,VS 自帶了搜索功能。

在相應(yīng)的 Error 或者 Warning 條目上右擊,會(huì)出現(xiàn)一個(gè)菜單,點(diǎn)擊 Show Error Help,將自動(dòng)執(zhí)行該 Error 或者 Warning 的 Bing 搜索。

 

另外,也可以點(diǎn)擊 Code 列中的錯(cuò)誤代碼超鏈接,如 CS1525,同樣會(huì)執(zhí)行該錯(cuò)誤代碼的 Bing 搜索。

一一查看并解決 Error List 中出現(xiàn)的所有的 Error,Rebuild Solution 直至成功生成解決方案。

4、代碼靜態(tài)分析

解決了 Build 過(guò)程中 Error List 出現(xiàn)的所有 Error 之后,可以嘗試執(zhí)行代碼靜態(tài)分析。

代碼靜態(tài)分析會(huì)去分析代碼中可能的導(dǎo)致運(yùn)行時(shí)錯(cuò)誤等問(wèn)題,并給出 Warning。

不要覺(jué)得沒(méi) Erorr 了,Build 成功了,就萬(wàn)事大吉了,在一開(kāi)始的時(shí)候,盡量解決代碼中出現(xiàn)的 Warning,可以省去將來(lái)不必要的麻煩。

可以按快捷鍵 Alt+F11 也可以點(diǎn)擊如下菜單,執(zhí)行代碼靜態(tài)分析。

 

Warning 同樣出現(xiàn)在 Error List 窗口,點(diǎn)擊 「 Warning」選項(xiàng)卡查看。

 

跳轉(zhuǎn)至出現(xiàn) Warning 的代碼行。綠色波浪線代表了 Warning,可將鼠標(biāo)懸停在上方獲取詳細(xì)信息。

 

Run 階段

5、基本操作

Build Solution 成功以后,按下 F5 執(zhí)行,這將在 Debug 環(huán)境中啟動(dòng)程序。

此時(shí)默認(rèn)出現(xiàn)兩個(gè)窗口。

 

按下 Break 或 Stop 按鈕來(lái)暫?;蛲V钩绦?。

 

按下 Continue 按鈕繼續(xù)執(zhí)行程序。

 

6、設(shè)置斷點(diǎn)

設(shè)置斷點(diǎn)是 Debug 過(guò)程最最最常用的功能。

斷點(diǎn)指示 VS 在執(zhí)行到哪一行代碼的時(shí)候掛起。程序掛起的時(shí)候,可以查看任意你想看的東西,如變量值,內(nèi)存,代碼執(zhí)行分支等。

設(shè)置斷點(diǎn)很簡(jiǎn)單,只要在編輯區(qū)的邊緣單擊一下或者在相應(yīng)的代碼行按下 F9,旁邊就會(huì)出現(xiàn)一個(gè)紅色圓點(diǎn),這個(gè)紅色圓點(diǎn)就代表了斷點(diǎn)。

 

設(shè)置好斷點(diǎn),按下 F5,程序即會(huì)在斷點(diǎn)處停下來(lái)。

動(dòng)圖在這里。

 

接下來(lái),常用的幾個(gè)操作是:

F10 step over code 單步執(zhí)行
F11 step into code 跳轉(zhuǎn)至內(nèi)層函數(shù)
Shift+F11 step out code 從當(dāng)前函數(shù)中跳出

可以設(shè)置多個(gè)斷點(diǎn),在 F5,F(xiàn)10 等快捷鍵之間切換,轉(zhuǎn)到不同的斷點(diǎn)。

7、查看變量

程序執(zhí)行到斷點(diǎn)處,停下來(lái)的時(shí)候,可以查看代碼中的變量,堆棧調(diào)用情況等,看下它們是不是在預(yù)期的范圍內(nèi)。

 

將鼠標(biāo)懸停在變量上面,可以看到它此刻的值。

再放個(gè)動(dòng)圖,更清楚一點(diǎn)。

 

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論