前言
作為一個(gè).net開(kāi)發(fā)工程師,不管是在寫桌面程序、服務(wù)程序或web程序,在開(kāi)發(fā)階段,我們必須非常熟悉vs的動(dòng)態(tài)調(diào)試技能,當(dāng)然web程序可能還需要調(diào)試前端的腳本或樣式,這不在本文的討論范圍。本文主要介紹vs的動(dòng)態(tài)調(diào)試基本知識(shí),以及介紹如何追蹤已發(fā)布的程序的調(diào)試日志或技能。
開(kāi)發(fā)階段
本階段主要以動(dòng)態(tài)調(diào)試為主,調(diào)試的利器當(dāng)然是vs。
動(dòng)態(tài)調(diào)試步驟:
1、擁有程序的代碼和pdb文件;
2、在你要觀察邏輯代碼行號(hào)下斷點(diǎn);
3、vs->調(diào)試->開(kāi)始調(diào)試(你可能需要條件來(lái)觸發(fā)讓程序執(zhí)行到你要的邏輯代碼行號(hào));
4、對(duì)于已運(yùn)行的程序,你也可以vs->調(diào)試->附加到進(jìn)程 來(lái)完成啟動(dòng)調(diào)試,如果已運(yùn)行的程序是服務(wù)進(jìn)程(非桌面進(jìn)程),在附加到進(jìn)程對(duì)話框要勾選上“顯示所有用戶的進(jìn)程”;
斷點(diǎn)的條件過(guò)濾
在動(dòng)態(tài)調(diào)試中,如果在多線程環(huán)境,一個(gè)斷點(diǎn)斷到之后,如果使用“逐語(yǔ)句”到下語(yǔ)句的話,斷點(diǎn)又會(huì)馬上被斷到,造成跟蹤上下文很不方便;還一種情況,在循環(huán)體里下斷,但是只想跟蹤符合一定條件的點(diǎn)。這些時(shí)候,應(yīng)使用條件斷點(diǎn),在某代碼行號(hào)下斷,然后右鍵左邊紅色斷點(diǎn)實(shí)圈,彈出的菜單里可以給斷點(diǎn)設(shè)置條件,設(shè)置條件之后的斷點(diǎn),叫條件斷點(diǎn),vs顯示為紅色的虛圈。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26