怎么使用VisualC++子集搜索主題

這篇文章主要講解了“怎么使用Visual C++子集搜索主題”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么使用Visual C++子集搜索主題”吧!

網(wǎng)站設(shè)計制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺管理系統(tǒng);做網(wǎng)站、成都網(wǎng)站設(shè)計收費合理;免費進(jìn)行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運營了十年的創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司。

在Windows平臺上的實現(xiàn)就有若干種,比較常用的有Visual C++ 6.0附帶的Visual C++子集實現(xiàn),和Borland C++ Builder附帶的C++編譯器實現(xiàn),看完本文你肯定有不少收獲,希望本文能教會你更多東西。

如果程序并不是每次運行到斷點處都會發(fā)生錯誤,那么不停地在調(diào)試器和應(yīng)用程序之間穿梭很快就會讓人厭倦,這時高級斷點就派上了用場。從本質(zhì)上來講,高級斷點允許你將某些智慧寫入到斷點中,讓調(diào)試器在執(zhí)行到斷點處時,只當(dāng)程序內(nèi)部狀態(tài)符合你指定的條件時才在斷點處中斷程序運行,并切換到調(diào)試器中。按下Alt+F9快捷鍵彈出Breakpoints對話框,瀏覽一下對話框發(fā)現(xiàn)該對話框分為Location、Data和Messages三頁,分別對應(yīng)三種斷點:

1. 位置斷點:我們通常使用的簡單斷點均為位置斷點,我們還可以設(shè)置斷點在某個二進(jìn)制地址或任何函數(shù)上,并通過指定各種限定條件來增強(qiáng)位置斷點的功能。

2. 表達(dá)式和變量斷點:調(diào)試器會讓程序一直運行,直到滿足所設(shè)的條件或者指定數(shù)據(jù)更改為止。在Intel CPU上,這兩種斷點都盡可能通過CPU的特定調(diào)試寄存器使用一個硬件斷點,如果能夠使用調(diào)試寄存器,那么程序?qū)⒛軌蛉龠\行,否則調(diào)試器將單步執(zhí)行每個匯編指令,并每步都檢查條件,程序的運行速度將極其緩慢甚至無法運行。

3. Visual C++子集斷點:使用消息斷點,可以讓調(diào)試器在窗口過程接收到一個特定的Windows消息時中斷。消息斷點適用于C SDK類型的程序,對于使用MFC等C++類庫的程序(應(yīng)該是絕大多數(shù))來說,消息斷點并不實用,可以變通地使用位置斷點來達(dá)到同樣效果。

調(diào)用堆棧

有時候我們并不清楚應(yīng)該在哪里設(shè)置斷點,只知道程序正在運行就突然崩潰了,這時候如何定位到出錯地點呢?這時的選擇就是查看調(diào)用堆棧,調(diào)用堆??梢詭椭覀兇_定某一特定時刻,程序中各個函數(shù)之間的相互調(diào)用關(guān)系。

  • 講述C++Builder實現(xiàn)IE中最常用菜單

  • 進(jìn)行Visual C++ 6.0編譯實現(xiàn)功能

  • 分析C++語法與C語言之間關(guān)系說明

  • 對C++編程錯誤進(jìn)行說明講解

  • 詳細(xì)介紹C++語言及其代碼進(jìn)行學(xué)習(xí)

方法是當(dāng)程序執(zhí)行到某斷點處或者程序崩潰,控制權(quán)轉(zhuǎn)到調(diào)試器后,按下Alt+7快捷鍵,彈出Call Stack窗口,你可以看到當(dāng)前函數(shù)調(diào)用情況,當(dāng)前函數(shù)在最上面,下面的函數(shù)依次調(diào)用其上面的函數(shù)。在Call Stack窗口的彈出菜單上選擇Parameter Values和Parameter Types可以顯示各個函數(shù)的參數(shù)類型和傳入值。

使用跟蹤工具

有些時候,我們希望了解程序中不同函數(shù)之間的協(xié)作關(guān)系,或者由于文檔的缺失,希望能夠確認(rèn)函數(shù)在不同情況下被調(diào)用時的傳入?yún)?shù)值。這時使用斷點功能就過分麻煩,而調(diào)用堆棧只能查看當(dāng)前函數(shù)的被調(diào)用情況,一種較好的方法就是使用TRACE宏以及相對應(yīng)的工具。

程序(Debug版)運行中,一旦運行到Visual C++子集,就會向當(dāng)前Windows系統(tǒng)的調(diào)試器輸出TRACE宏內(nèi)指定的字符串并顯示出來,當(dāng)在Visual C++環(huán)境中調(diào)試運行(按F5鍵)程序時,可以在Output窗口的Debug頁看到TRACE宏的輸出內(nèi)容。

實際上,TRACE宏是封裝了Windows API函數(shù)OutputDebugString的功能,有些輔助工具可以在不驚動Visual C++調(diào)試器的前提下,攔截程序中TRACE宏的輸出內(nèi)容,比如《深入淺出MFC》的附錄中提到的Microsoft System Journal(MSJ)1996年1月的C/C++專欄介紹的TraceWin工具(在較老版本的MSDN中可以找到源代碼和文檔)以及功能強(qiáng)大的免費工具DebugView。

使用TRACE宏,我們可以輕松了解程序中各個函數(shù)之間的相互協(xié)作關(guān)系和被調(diào)用的先后順序和時間,進(jìn)一步說,你能夠完全掌握程序的執(zhí)行流程。***請注意,TRACE宏會對程序效率有所影響,所以,當(dāng)前不用的TRACE宏***刪除或者注釋掉。

 閱讀程序的技巧

對于程序員來說,無論是學(xué)習(xí)還是工作,經(jīng)常要閱讀其他程序員的源代碼,如何快速領(lǐng)悟程序的思想,洞悉程序的結(jié)構(gòu)和各個組成部分的功能,進(jìn)而全面掌握程序所涉及的方方面面,是程序員很重要的一項基本技能。下面介紹一些常用的技巧。

從功能、界面入手Visual C++子集

一個完整的應(yīng)用程序或者系統(tǒng)是由若干相對獨立的功能構(gòu)成,這些功能反應(yīng)在與用戶交互的圖形界面上,就是各種菜單命令、工具欄按鈕命令等等。所以如果當(dāng)前只對程序的某幾個功能感興趣,可以在程序中找到這些菜單命令、按鈕命令等的ID響應(yīng)函數(shù),以此為起點,逐步深入到程序內(nèi)部,直到完全理解該功能的實現(xiàn)為止。此過程所花費的時間,很大程度上取決于程序員對調(diào)試技術(shù)的掌握程度。

需要強(qiáng)調(diào)的是,在不熟悉程序核心結(jié)構(gòu)和實現(xiàn)技術(shù)的情況下,直接采用該方法探究程序,當(dāng)逐步深入到程序核心時,涉及的程序模塊數(shù)量會急劇增長,理解難度也會驟然增大;一旦你對程序核心結(jié)構(gòu)和實現(xiàn)技術(shù)了然于胸,采用該方法探究程序,會有勢如破竹之感覺。

砍去枝葉,只留主干

前面已經(jīng)提到,無論如何,最終你都要掌握程序核心結(jié)構(gòu)和實現(xiàn)技術(shù)。如何掌握呢?方法是首先將拿到的程序進(jìn)行完整的備份,然后將次要功能都從程序中去掉,只留下的必須的部分。去除次要功能是一個反復(fù)多次的過程,花費的時間取決于程序員對行業(yè)知識的理解程度、編程技術(shù)的高低和經(jīng)驗的多少。

經(jīng)常遇到無法在短時間內(nèi)判斷某個模塊是否次要的情況(隨著對程序的理解逐漸加深,以及經(jīng)驗和技術(shù)的積累,這種情況會越來越少),這時候建議直接將該模塊去除,然后重新編譯連接程序,運行程序,看程序運行是否正常。

感謝各位的閱讀,以上就是“怎么使用Visual C++子集搜索主題”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么使用Visual C++子集搜索主題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

文章標(biāo)題:怎么使用VisualC++子集搜索主題
新聞來源:http://bm7419.com/article48/jcsehp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、微信小程序、網(wǎng)站改版網(wǎng)站維護(hù)、微信公眾號關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站