11個(gè)強(qiáng)大的VisualStudio調(diào)試小技巧

2024-01-17    分類: 網(wǎng)站建設(shè)

調(diào)試是軟件開發(fā)周期中很重要的一部分。它具有挑戰(zhàn)性,一起也很讓人疑問(wèn)和煩惱。總的來(lái)說(shuō),關(guān)于稍大一點(diǎn)的程序,調(diào)試是不可避免的。比來(lái)幾年,調(diào)試東西的開展讓許多調(diào)試使命變的越來(lái)越簡(jiǎn)略和省時(shí)。

這篇文章總結(jié)了能夠節(jié)約你很多時(shí)刻的11個(gè)Visual studio的調(diào)試竅門和辦法。

1 懸停鼠標(biāo)檢查表達(dá)式值

調(diào)試是很有挑戰(zhàn)性的。比方在函數(shù)內(nèi)逐漸運(yùn)轉(zhuǎn)能夠看出哪里犯錯(cuò),檢查倉(cāng)庫(kù)信息能夠曉得函數(shù)被誰(shuí)調(diào)用等等……可是無(wú)論哪種情況下,檢查表達(dá)式和部分變量的值都是很費(fèi)事的(把表達(dá)式和部分變量放到watch窗口里)。一種更簡(jiǎn)略的辦法,把鼠標(biāo)停在所需檢查的數(shù)據(jù)上。若是是類或布局,那么點(diǎn)擊翻開能夠很便利疾速地檢查其字段。

2 在運(yùn)轉(zhuǎn)過(guò)程中改動(dòng)變量值

調(diào)試器不僅僅是剖析程序潰散和怪異行動(dòng)的東西,還能夠經(jīng)過(guò)逐漸調(diào)試檢查數(shù)據(jù)和行動(dòng)能否契合程序預(yù)期的辦法處理許多bug。有時(shí),你會(huì)想能否設(shè)置某些條件為真,程序就能正確運(yùn)轉(zhuǎn)了。其實(shí)你只需把鼠標(biāo)移動(dòng)到變量上,雙擊值,然后輸入你需求的值。這樣就不需求修正代碼,重啟程序了。

3 設(shè)置下一個(gè)運(yùn)轉(zhuǎn)方位

一個(gè)典型的調(diào)試事例是咱們常常會(huì)用逐漸調(diào)試的辦法去剖析為什么函數(shù)犯錯(cuò)了。這時(shí)你遇到這個(gè)函數(shù)調(diào)用其他函數(shù)回來(lái)過(guò)錯(cuò),而這個(gè)過(guò)錯(cuò)不是你想要的,你該怎么辦?重啟調(diào)試器?這里有個(gè)非常好的辦法,直接把黃色的運(yùn)轉(zhuǎn)方位箭頭拖到你想要的運(yùn)轉(zhuǎn)方位。其實(shí)就是越過(guò)中心運(yùn)轉(zhuǎn)代碼,直接到想要的方位。很簡(jiǎn)略吧。

4 修正然后持續(xù)運(yùn)轉(zhuǎn)

在運(yùn)轉(zhuǎn)一個(gè)很雜亂的程序和插件時(shí),發(fā)現(xiàn)一個(gè)過(guò)錯(cuò),可是不想浪費(fèi)時(shí)刻去重編譯重啟動(dòng)程序。很簡(jiǎn)略,只需在這個(gè)方位修正這個(gè)bug,然后持續(xù)調(diào)試。Visual studio會(huì)修正這個(gè)程序,使得你能夠持續(xù)調(diào)試而不需求重啟程序。

值得注意的是“修正然后持續(xù)運(yùn)轉(zhuǎn)”這個(gè)功用有幾個(gè)約束。一,它不能在64位代碼上運(yùn)用。若是想運(yùn)用這個(gè)功用,到項(xiàng)目設(shè)置里的編譯選項(xiàng),挑選”x86”作為方針渠道。不要憂慮,這方針渠道在reslease裝備是和”debug是別離的,也就是說(shuō)依然是”Any CPU”的設(shè)置。二,“修正然后持續(xù)運(yùn)轉(zhuǎn)”這個(gè)功用僅適用于一個(gè)函數(shù)內(nèi)部改動(dòng)。若是你想要改動(dòng)這個(gè)函數(shù)的聲明或許添加新的辦法,你只能挑選重啟程序,或許不做任何改動(dòng)持續(xù)。若是修正的辦法中包括lambda表達(dá)式,則意味著修正了編譯器主動(dòng)生成的托付類型,這樣會(huì)致使編譯器中止運(yùn)轉(zhuǎn)。

5 一個(gè)便利的檢查窗口

大多數(shù)現(xiàn)代的調(diào)試器都有檢查窗口。可是,visual studio的檢查窗口運(yùn)用格外簡(jiǎn)略,你能很便利的添加和刪去變量。只需在窗口里點(diǎn)擊空白行,輸入表達(dá)式然后按enter鍵?;蛟S點(diǎn)擊表達(dá)式,按delete鍵刪去不需求的表達(dá)式。

在調(diào)試窗口不僅僅能夠檢查一般的變量值,乃至能夠輸入$handles去追尋翻開的句柄數(shù)量,$err去檢查函數(shù)的過(guò)錯(cuò)代碼(然后運(yùn)用 Tools->Error 檢查過(guò)錯(cuò)代碼的描繪)或許輸入 @eax(在64位下是@rax )檢查包括函數(shù)回來(lái)值的寄存器值。

6 注釋反匯編

運(yùn)用內(nèi)部的反匯編功用使得優(yōu)化部分代碼愈加簡(jiǎn)略。Visual studio能夠在你的每一行代碼下顯現(xiàn)匯編指令,而且能夠逐漸調(diào)試匯編代碼,也能夠在恣意方位設(shè)置斷點(diǎn)。檢查和修正匯編代碼類似于c++。

7 倉(cāng)庫(kù)信息的線程窗口

調(diào)試多線程代碼是很苦楚的?;蛟S也是風(fēng)趣的。這取決于你的調(diào)試器。Visual studio 一個(gè)很贊的功用就是在線程窗口檢查線程的倉(cāng)庫(kù)信息。你能很便利的直接看到一切線程以及他們的倉(cāng)庫(kù)信息。

8 條件斷點(diǎn)

若是你想重現(xiàn)一個(gè)小概率事件,可是斷點(diǎn)在很多不需求的條件下也會(huì)觸發(fā)。你能夠很簡(jiǎn)略的設(shè)置條件斷點(diǎn)。在斷點(diǎn)窗口設(shè)置該斷點(diǎn)條件,Visual studio 會(huì)主動(dòng)疏忽不契合條件的斷點(diǎn)。

9 內(nèi)存窗口

一些bug是由過(guò)錯(cuò)的布局界說(shuō)、短少對(duì)齊特點(diǎn)等緣由導(dǎo)致的。檢查每行內(nèi)存的內(nèi)容很簡(jiǎn)單定位和處理這些bug. Visual studio 的內(nèi)存窗口能夠把數(shù)據(jù)翻譯成8/16/32/64-bit數(shù)字或許浮點(diǎn)數(shù)。你能夠在修正窗口直接改動(dòng)數(shù)值。

10 跳轉(zhuǎn)到界說(shuō)

若是你在處理他人寫的代碼一個(gè)bug,會(huì)遇到“這個(gè)類型是什么”“這個(gè)函數(shù)做什么的”之類的疑問(wèn),你能夠運(yùn)用visual studio的跳轉(zhuǎn)到界說(shuō)的指令來(lái)檢查類型或函數(shù)的界說(shuō)。

11 指令窗口

這個(gè)小竅門是由chaau主張的,它能節(jié)約你很多的時(shí)刻。Visual studio撐持一個(gè)指令窗口,你能夠經(jīng)過(guò)菜單View->Other Windows->Command Window 翻開。你能夠在窗口里輸入不一樣指令使調(diào)試主動(dòng)化。比方,能夠經(jīng)過(guò)很簡(jiǎn)略的指令去的測(cè)驗(yàn)MFC的COleDateTime變量。

文章標(biāo)題:11個(gè)強(qiáng)大的VisualStudio調(diào)試小技巧
文章分享:http://www.bm7419.com/news12/314062.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、關(guān)鍵詞優(yōu)化自適應(yīng)網(wǎng)站、電子商務(wù)、標(biāo)簽優(yōu)化、全網(wǎng)營(yí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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作