天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Visual Studio調(diào)試之?dāng)帱c(diǎn)基礎(chǔ)篇

文章導(dǎo)航

Visual Studio調(diào)試之?dāng)帱c(diǎn)基礎(chǔ)篇

Visual Studio調(diào)試之?dāng)帱c(diǎn)進(jìn)階篇

Visual Studio調(diào)試之?dāng)帱c(diǎn)技巧篇

我曾經(jīng)問(wèn)過(guò)很多人,你一般是怎么調(diào)試你的程序的?

F9, F5, F11, F……

有很多書(shū)和文章都是介紹怎么使用Visual Studio編寫(xiě)WinForm,ASP.NET之類(lèi)的程序;知道如何編寫(xiě)固然重要,但是我覺(jué)得程序員可能只會(huì)花費(fèi)30%的時(shí)間在編寫(xiě)代碼上,剩下的大部分時(shí)間都是在調(diào)試程序。在網(wǎng)上看到很多人介紹Windbg的用法,但是沒(méi)有看到幾篇講解使用Visual Studio調(diào)試的文章。Windbg固然強(qiáng)大,但是問(wèn)題是它的學(xué)習(xí)曲線(xiàn)太陡了,而且很多調(diào)試并不需要使用Windbg來(lái)調(diào)試(當(dāng)然啦,并不是指我不會(huì)Windbg調(diào)試?yán)?/span>—這是以后的調(diào)試系列文章將要講的),為什么不使用我們最熟悉的Visual Studio來(lái)進(jìn)行調(diào)試呢?

調(diào)試嘛,無(wú)非就是要看看程序在運(yùn)行時(shí)候,內(nèi)部的狀態(tài),例如一些變量的值是多少,看一看程序調(diào)用的路徑啦之類(lèi)的。當(dāng)然最直接的方式就是直接中斷程序的執(zhí)行,用調(diào)試器去檢查一下程序的情況嘛。于是F9, F5, F10, F11……

那么我們就來(lái)說(shuō)說(shuō)什么是斷點(diǎn),斷點(diǎn)是什么?不是F9 ,也不是那個(gè)小紅球,在Intel系列的CPU(包括AMD生產(chǎn)的CPU)里面,它其實(shí)是一個(gè)特殊的指令—INT 3CPU在執(zhí)行程序的指令集的時(shí)候,只要碰到這個(gè)指令,就會(huì)中斷程序的執(zhí)行(當(dāng)然啦,CPU會(huì)通知操作系統(tǒng),然后……然后……然后……,斷點(diǎn)的實(shí)現(xiàn)機(jī)制我會(huì)在以后的文章里面講解,現(xiàn)在我們就只要知道那個(gè)INT 3指令會(huì)中斷程序的執(zhí)行好嗎?)。

當(dāng)然啦,我們需要用事實(shí)來(lái)證明我上面的話(huà),因此把下面的程序編譯并且執(zhí)行一下,點(diǎn)“Yes”,點(diǎn)“Break”,對(duì)對(duì)對(duì),程序中斷了,我相信你可以看見(jiàn)的:

#include  

 

void main()

{

       printf("Before breakpoint"n");

       __asm

       {

              int 3

       }

       printf("Before breakpoint"n");

}

 

編譯方法:

1.       在開(kāi)始菜單中打開(kāi)Visual Studio 2008[2005] Command PromptVisual Studio 2008[2005]命令行)。

2.       進(jìn)入保存上面 C源代碼(int3.c)的文件夾的路徑。

3.       執(zhí)行編譯命令(因?yàn)槲业臋C(jī)器是Windows 7 RC + Visual Studio 2008 + x64 CPU,直接編譯有一點(diǎn)問(wèn)題,如果你的機(jī)器不是我上面的配置,可以嘗試執(zhí)行cl /Zi int3.c

cl /Zi /c int3.c

4.       執(zhí)行鏈接命令(如果你直接執(zhí)行了命令cl /Zi int3.c的話(huà)就可以跳過(guò)這一步)。

link /libpath:"C:"Program Files"Microsoft SDKs"Windows"v6.0A"Lib" int3.obj

5.       運(yùn)行輸出的int3.exe

這時(shí)你應(yīng)該會(huì)看到Visual Studio彈出來(lái),然后在源代碼行的int 3上面中斷,說(shuō)明我們已經(jīng)成功地讓CPU中斷int3.exe程序 的執(zhí)行了。

提示:如果你執(zhí)行int3.exe的時(shí)候,沒(méi)有發(fā)現(xiàn)Visual Studio窗口彈出來(lái)的話(huà),那么請(qǐng)點(diǎn)擊Visual Studio菜單項(xiàng)里面的“Tools(工具)”Options(選項(xiàng))”,接著在“Options(選項(xiàng))”窗口中選擇 Debugging(調(diào)試)”Just-In-Time(即時(shí)調(diào)試)”,然后勾選“Native(原生程序)”選項(xiàng)。如下圖所示:

 

NET技術(shù)Visual Studio調(diào)試之?dāng)帱c(diǎn)基礎(chǔ)篇,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 99视频精品全部免费免费观 | 亚洲幼女网 | 国产色婷婷亚洲99精品 | 久久er国产免费精品 | 亚洲一区二区三区91 | 亚洲 日韩经典 中文字幕 | 果冻传媒在线观看视频 | 国产成人免费全部网站 | 青青青草免费 | 日本伦理片 中文字幕 | 亚洲欧美日韩在线观看一区二区三区 | 视频成人app永久在线观看 | 在线观看永久免费网站 | 99在线视频免费观看视频 | 无码任你躁久久久久久老妇双奶 | a级销魂美女 | 最近中文字幕无吗免费高清 | 中文字幕高清在线中文字幕 | 上原结衣快播 | 国产精品AV无码免费播放 | 国产成人a视频在线观看 | 好紧好湿太硬了我太爽了小说 | yellow免费影视大全 | 亚洲福利天堂网福利在线观看 | 97国产揄拍国产精品人妻 | 在线一本码道高清 | 免费看毛片网 | 国产亚洲精品精品国产亚洲综合 | zoovideo人与驴mp4 | 亚洲第一综合天堂另类专 | 国产毛片AV久久久久精品 | 成人欧美一区二区三区白人 | 午夜视频体内射.COM.COM | 国产亚洲综合视频 | 国产午夜免费不卡精品理论片 | 在线播放成人无码日 | X8X8拨牐拨牐X8免费视频8午夜 | 亚洲欲色欲色XXXXX在线AV | BT7086福利二区最新 | 超碰97人人做人人爱网站 | 阿片在线播放 |