卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

設(shè)置斷點(diǎn)的命令 切換斷點(diǎn)是什么意思?怎么應(yīng)用?

切換斷點(diǎn)是什么意思?怎么應(yīng)用?斷點(diǎn)通常安排在程序代碼中能夠反映程序執(zhí)行狀態(tài)的部分。打開(kāi)“代碼編輯器”窗口,將光標(biāo)指向要作為斷點(diǎn)的代碼行,然后使用“調(diào)試”菜單中的“切換斷點(diǎn)”命令。設(shè)置為斷點(diǎn)的代碼行將被

切換斷點(diǎn)是什么意思?怎么應(yīng)用?

斷點(diǎn)通常安排在程序代碼中能夠反映程序執(zhí)行狀態(tài)的部分。

打開(kāi)“代碼編輯器”窗口,將光標(biāo)指向要作為斷點(diǎn)的代碼行,然后使用“調(diào)試”菜單中的“切換斷點(diǎn)”命令。設(shè)置為斷點(diǎn)的代碼行將被加粗并突出顯示。

中斷隱指令由哪個(gè)硬件執(zhí)行?

中斷隱式指令由CPU執(zhí)行。

中斷隱式指令是指CPU響應(yīng)一個(gè)中斷,經(jīng)過(guò)一些操作后,再執(zhí)行中斷服務(wù)程序的操作。

中斷隱式指令在指令系統(tǒng)中不是真正的指令,它沒(méi)有操作碼,所以中斷隱式指令是一種不被允許的,用戶(hù)不能使用的特殊指令。其完成的業(yè)務(wù)主要包括:

(1)保存斷點(diǎn)

為了保證中斷服務(wù)程序執(zhí)行后能正確返回原程序,必須保存原程序的斷點(diǎn)(即程序計(jì)數(shù)器(PC)的內(nèi)容)。斷點(diǎn)可以被推入堆?;虼鎯?chǔ)在主內(nèi)存的特定單元中。

(2)暫時(shí)不允許中斷

暫時(shí)不允許中斷。在中斷服務(wù)程序中,為了保護(hù)中斷場(chǎng)景(即CPU主寄存器的內(nèi)容)不被新的中斷中斷,需要關(guān)閉中斷,以保證中斷服務(wù)程序執(zhí)行后被中斷的程序能夠正確執(zhí)行。

在中斷隱藏指令中并不是全部由硬件自動(dòng)關(guān)閉,有一部分是由軟件(中斷服務(wù)程序)實(shí)現(xiàn)的。中斷服務(wù)程序通常用于保存通用寄存器和狀態(tài)寄存器的內(nèi)容。

(3)導(dǎo)出中斷服務(wù)程序

導(dǎo)出中斷服務(wù)程序的實(shí)質(zhì)是取出中斷服務(wù)程序的入口地址,并發(fā)送給程序計(jì)數(shù)器(PC)。對(duì)于矢量中斷和非矢量中斷,中斷服務(wù)程序的方法是不同的。

斷點(diǎn)類(lèi)型有哪些?

斷點(diǎn)的類(lèi)型

抄送斷點(diǎn)

也叫int3/F2斷點(diǎn),軟件執(zhí)行int3指令時(shí)程序會(huì)暫停,int3指令的機(jī)器碼是CC。設(shè)置CC斷點(diǎn)后,原位置的機(jī)器碼會(huì)被調(diào)試器修改為0xCC(并備份原數(shù)據(jù)),程序執(zhí)行到0xCC時(shí)程序會(huì)被掛起(調(diào)試器做的事情)。

所以也就是說(shuō),如果我們的程序中有0xCC沒(méi)有調(diào)試器,程序就不會(huì)暫停。

優(yōu)點(diǎn):可以設(shè)置無(wú)數(shù)。

缺點(diǎn):容易被察覺(jué)。

內(nèi)存斷點(diǎn)

分為:

(1)內(nèi)存執(zhí)行斷點(diǎn)

機(jī)器碼作為程序執(zhí)行的時(shí)候是破的。

(2)內(nèi)存寫(xiě)斷點(diǎn)

重寫(xiě)這部分機(jī)器碼的時(shí)候壞了。

(3)內(nèi)存訪(fǎng)問(wèn)斷點(diǎn)

訪(fǎng)問(wèn)執(zhí)行|寫(xiě)入。

設(shè)置內(nèi)存斷點(diǎn)后,調(diào)試器將向斷點(diǎn)所在的內(nèi)存頁(yè)添加PAGE_NOACCESS屬性。該屬性將設(shè)置當(dāng)前內(nèi)存頁(yè)面,禁止任何形式的訪(fǎng)問(wèn)。如果你訪(fǎng)問(wèn)它,就會(huì)觸發(fā)一個(gè)內(nèi)存訪(fǎng)問(wèn)異常,然后調(diào)試器會(huì)捕捉這個(gè)異常,判斷這個(gè)異常觸發(fā)的位置和你的斷點(diǎn)。無(wú)論位置是否相同,接管異常并暫停程序,否則,釋放程序。

優(yōu)點(diǎn):與CC斷點(diǎn)相比,不容易被檢測(cè)到。

缺點(diǎn):只能設(shè)置一個(gè)(新設(shè)置的內(nèi)存斷點(diǎn)會(huì)覆蓋原有的內(nèi)存斷點(diǎn)),調(diào)試器中沒(méi)有相應(yīng)的記錄窗口,程序重裝后會(huì)消失。

硬件斷點(diǎn)

在寄存器中,有一些寄存器,用于調(diào)試。人們稱(chēng)之為調(diào)試寄存器,有DR0到DR7八個(gè)名字。

Dr0-Dr3存儲(chǔ)中斷的地址,Dr4和Dr5一般不使用(保留),Dr6和Dr7記錄Dr0-Dr3中中斷地址的屬性。

硬件斷點(diǎn)最不容易被打破,可以分為三種類(lèi)型:

(1)硬件執(zhí)行斷點(diǎn)。

(2)硬件寫(xiě)斷點(diǎn)。

(3)硬件訪(fǎng)問(wèn)斷點(diǎn)。

當(dāng)硬件斷點(diǎn)生效時(shí),他會(huì)先執(zhí)行合格代碼,執(zhí)行完后再停止,而內(nèi)存斷點(diǎn)和CC斷點(diǎn)會(huì)在合格代碼即將執(zhí)行時(shí)被打破。

優(yōu)點(diǎn):更難檢測(cè),程序重裝后不消失。

缺點(diǎn):只能設(shè)置有限的數(shù)量。

條件斷點(diǎn)

只有滿(mǎn)足設(shè)定條件時(shí)才會(huì)觸發(fā)的斷點(diǎn)(自己設(shè)置的邏輯表達(dá)式)。

條件記錄斷點(diǎn)

條件記錄斷點(diǎn)不僅具有條件斷點(diǎn)的功能,還可以記錄斷點(diǎn)處函數(shù)表達(dá)式或參數(shù)的值,還可以設(shè)置通過(guò)斷點(diǎn)的次數(shù)。每當(dāng)滿(mǎn)足暫停條件時(shí),計(jì)數(shù)器就減1。

您可以有條件地在重復(fù)調(diào)用的函數(shù)段的開(kāi)頭記錄斷點(diǎn)。過(guò)濾每個(gè)調(diào)用中傳遞的參數(shù),并在適當(dāng)?shù)臅r(shí)候斷開(kāi)連接。

消息斷點(diǎn)

消息斷點(diǎn)是條件記錄斷點(diǎn)的應(yīng)用,是為一個(gè)特殊函數(shù):winproc函數(shù)的消息參數(shù)設(shè)置的記錄斷點(diǎn)。

Windows是一個(gè)基于消息的操作系統(tǒng)。每個(gè)消息都以相同的格式寫(xiě)入一個(gè)結(jié)構(gòu)中。這種結(jié)構(gòu)叫做MSG。消息出現(xiàn)后,windows將該結(jié)構(gòu)傳遞給WinProc函數(shù),并使用它來(lái)執(zhí)行消息處理功能。

您可以在W窗口中為程序表單消息設(shè)置消息斷點(diǎn)。