美圖欣賞 | 設為首頁 | 加入收藏 | 網站地圖

當前位置:新錦江平臺:www.xjj7.com-電腦中國 > 編程 > C語言 >

VC6斷點調試技巧下

2020-05-16 10:00|來源:未知 |作者:dnzg |點擊:

在第一篇中,我們為大家介紹了如何用VC6進行斷點調試,可以實現程序的分步執行。今天我們將繼續深入,進行更多斷點調試的學習。

首先,寫一個例子程序:


  1. #include
  2. int fun()
  3. {
  4. printf("Welcome to C language Reserch Center\n");
  5. return 0;
  6. }
  7. int main()
  8. {
  9. int i=0;
  10. int sum=0;
  11. fun();
  12. while(i++<100)
  13. {
  14. sum+=i;
  15. }
  16. printf("1+2+3+...+99+100 = %d\n",sum);
  17.  
  18. return 0;
  19. }

 

大家可以先行閱讀以下程序,比較簡單,調用一個自定義函數輸出一句話,其二,計算1+2一直加到100的和并輸出。

然后,我們做練習,運用上節課的斷點調試逐步跟我們這個程序。

首先,我們在第一行int i=0;這里設置一個斷點,運行它,如圖:

VC6斷點調試技巧<第二篇>

注意看到,黑框里什么都沒有輸出,并且下方的變量監視里i的值還是垃圾值,因為還未執行這句話。

然后我們F10下一步執行。但當大家執行到fun();函數調用這條語句時,編譯器把它當成一句話來執行,并未進入函數內部,而是一步帶過,如圖:

 

VC6斷點調試技巧<第二篇>

大家可自行上機實驗,可以發現F10單步執行的單步是以一條C語言語句為單位的。鑒于這種情況,當我們懷疑fun函數時如何調試呢?

除了可以在fun函數內部設置斷點以外,我們還有一個辦法,就是不按F10,而按F11,F11的意思是單步執行并介入,也就是說遇到單出的一句話就和F10沒什么區別了,但如果是函數調用這種還能“進入”的語句,它就會逐層深入進去!大家能理解嗎?

那我們來試一試,重新開始,回到程序一開始的斷點處,在黃色箭頭指向到fun()時,按F11,大家注意觀察!

黃色的箭頭會進入fun函數內部,如圖:

VC6斷點調試技巧<第二篇>

然后可以逐步跟蹤fun函數內部的語句了! 怎么樣?試試吧

當然,這里提示一下,對于我們想深入研究的函數我們可以F11介入一探究竟,但如果一直F11的話可能會一直深入程序底層可能按不出來哦!另外,對于printf這種庫函數,如果還按F11的話,由于printf已經編譯好,只能看到printf的匯編語句。所以大家還是根據情況按F10還是F11哦!

 

由于大家在實際的開發工作當中,程序往往比我們的例子程序復雜很多,比如多個函數、嵌套、庫函數調用等等,也有誤進入函數內部,或者已經排查沒有問題的,如果想盡早結束此函數退出回到上一層調用處,如何實現呢?答案是:按shift+F11,既可以跳出函數,返回到當前斷點函數調用的下一步。

好的,講到這里,大家請自行實驗,熟練掌握F10和F11以及shift+F11的混合使用!

(責任編輯:dnzg)
安卓手机安全赚钱软件哪个好用 内蒙古快三专家推号 浙江11选五最大遗漏 时时彩软件之家 辽宁炒股安全配资平台 三个十字星k线图解法 五星在线配资平台 秒速快三官网hf12vip选择 3d试机号口诀破解秘籍 甘肃11选5推荐号码购买 三分pk拾走势图软件