自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析Visual Studio調(diào)試中斷點的設(shè)置

開發(fā) 后端
這里我們將介紹的是Visual Studio調(diào)試中斷點的設(shè)置,希望能對大家了解Visual Studio下的調(diào)試工作有所幫助。

本文將講解ViVisual Studio調(diào)試中斷點的設(shè)置,首先我們會來講解調(diào)試的定義,以及調(diào)試的重要性。對于斷點,我們也會從CPU的構(gòu)架開始講解。51CTO編輯推薦《Visual Studio 2010應(yīng)用與開發(fā)詳解

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

F9, F5, F11, F……

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

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

那么我們就來說說什么是斷點,斷點是什么?

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

當然啦,我們需要用事實來證明我上面的話,因此把下面的程序編譯并且執(zhí)行一下,點“Yes”,點“Break”,對對對,程序中斷了,我相信你可以看見的:

  1. #include   
  2. void main()  
  3. {  
  4.        printf("Before breakpoint"n");  
  5.        __asm  
  6.        {  
  7.               int 3  
  8.        }  
  9.        printf("Before breakpoint"n");  

編譯方法:

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

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

3.       執(zhí)行編譯命令(因為我的機器是Windows 7 RC + Visual Studio 2008 + x64 CPU,直接編譯有一點問題,如果你的機器不是我上面的配置,可以嘗試執(zhí)行cl /Zi int3.c

  1. cl /Zi /c int3.c 

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

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

5.       運行輸出的int3.exe。

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

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

原生程序

“綜上所述,斷點是int 3這個指令觸發(fā)的?。ㄐr候的數(shù)學證明題)”。

int 3這個指令(當然是在intel系列的CPU上面)引申出來有哪些函數(shù)呢:

語言/工具

名稱

描述

C++

DebugBreak

C++代碼中硬編碼一個斷點。

C#

Debugger.Break

.NET代碼中硬編碼一個斷點

Visual Studio

斷點

設(shè)置一個斷點

原文標題:Visual Studio調(diào)試之斷點基礎(chǔ)篇

鏈接:http://www.cnblogs.com/killmyday/archive/2009/09/26/1574311.html

【編輯推薦】

  1. Visual Studio 2010并行編程及調(diào)試診斷功能詳解
  2. 圖解VS 2010與.NET 4.0多顯示器支持
  3. VS 2010和.NET 4的多定向支持
  4. 圖解VS 2010和.NET 4起始項目模板
  5. VS 2010和.NET 4***步:Web.config文件
責任編輯:彭凡 來源: 中國軟件資訊網(wǎng)
相關(guān)推薦

2009-10-09 10:21:31

Visual Stud

2009-07-14 11:34:42

MyEclipse斷點JavaScript

2017-04-18 09:27:14

Visual StudNode.js調(diào)試

2020-03-12 13:00:36

Python斷點設(shè)置編程語言

2010-12-14 09:15:50

Visual Stud

2009-11-02 14:16:43

Visual Stud

2010-01-25 09:17:01

Visual Stud

2013-08-01 15:12:03

Visual Stud

2009-04-23 14:05:28

Visual Stud歷史調(diào)試功能

2010-02-23 16:24:47

Visual Stud

2009-12-03 15:58:33

Visual Stud

2009-12-04 10:35:56

Visual Stud

2009-11-23 14:32:55

Visual Stud

2010-01-25 16:58:15

C++程序

2012-09-17 13:49:31

2020-07-09 15:10:20

開發(fā)技能代碼

2009-12-04 11:17:00

Visual Stud

2013-05-29 14:54:49

Visual Stud

2009-11-02 14:06:59

Visual Stud

2009-10-14 09:08:23

Visual Stud
點贊
收藏

51CTO技術(shù)棧公眾號