91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何淺析Visual Studio調試中斷點的設置

發布時間:2021-12-18 21:57:02 來源:億速云 閱讀:252 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關如何淺析Visual Studio調試中斷點的設置,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

我曾經問過很多人,你一般是怎么調試你的程序的?

F9, F5, F11, F……

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

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

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

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

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

#include  void main()  {         printf("Before breakpoint"n");         __asm         {                int 3         }         printf("Before breakpoint"n");  }

編譯方法:

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

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

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

cl /Zi /c int3.c

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

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

5.       運行輸出的int3.exe。

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

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

如何淺析Visual Studio調試中斷點的設置

“綜上所述,斷點是

int 3這個指令觸發的!(小時候的數學證明題)”。

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

語言/工具

名稱

描述

C++

DebugBreak

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

C#

Debugger.Break

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

Visual Studio

斷點

設置一個斷點

以上就是如何淺析Visual Studio調試中斷點的設置,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

延津县| 溆浦县| 合肥市| 迭部县| 额尔古纳市| 永泰县| 青川县| 日土县| 三穗县| 灵武市| 乐安县| 齐齐哈尔市| 松溪县| 建平县| 连南| 郁南县| 静安区| 沁阳市| 孟连| 婺源县| 广安市| 江川县| 家居| 邢台市| 大余县| 高密市| 玛多县| 紫阳县| 兰州市| 华坪县| 江门市| 南京市| 塘沽区| 嵩明县| 黎川县| 微博| 区。| 舞钢市| 武强县| 青州市| 陇川县|