- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实习(四)DEBUG
實習(四) DEBUG
除錯(Debug)是程式設計中一個重要的部分,當一個程式的執行結果與原先
預期的不同時,就可以利用Debugger來找出程式錯誤的地方,來加以修正。
§VC++ Debugger功能簡介
找出VC++ 6.0 內Debugger的工具列
在功能列 [Tools] → Customizel中的Toolbars內將Debug核對方塊打勾
二.Debugger工具列功能簡介
1.Debugger工具列如下圖:
2.常用Debug工具列功能簡介
Restart:從程式起始處重新開始執行。
Stop Debugging:中止目前的Debug工作。
Step Over:只執行下一個敘述,然後再暫停程式的執行。
如果該敘述是一個函式呼叫,則執行該函式呼叫直到該
函式結束後再暫停程式的執行。
Step Into:只執行下一個敘述,然後再暫停程式的執行。
然而如果該敘述是一個函式呼叫,則進入該函式,然後在
執行該函式第一行敘述之前暫停程式的執行。
Step Out:執行目前函式剩下的斜述直到函式結束,然後回到原來呼
叫目前函式的敘述後暫停程式的執行。
Run to Cursor:繼續執行程式直到遇到游標所在敘述為止。
Quick Watch:按下Quick Watch鈕,會出現QuickWatch對話視窗,可
讓使用者計算出程式中任一表示式(Expression)的值。
Watch:可開啟Watch視窗,供使用者檢視各變數目前的值。
Variables:可開啟Variables視窗,供使用者檢視各變數目前的值。
並提供樹狀結構顯示區域變數及其成員函式的關係。
Registers:可開啟Registers視窗,供使用者觀察各暫存器目前的值。
Memory:可開啟Memory視窗,可觀察目前記憶體中之資料內容。
Call Stack:可開啟Call Stack視窗,這個視窗與Variables視窗功能
相同,但是比Variables視窗更好用,除了函式名稱外,
還可以看到傳入函式的參數,也就是──
Call Stack視窗可以顯示程式至此的函式呼叫關係。
Disassembly:可開啟Disassembly視窗,列出使用者的C++程式碼所產
生的組合語言碼。
§錯誤的種類:
撰寫程式時,我們通常會發生的錯誤,大致可分為兩類,一是語法錯誤,
二是邏輯錯誤。
所謂的語法錯誤,就是用錯了程式的語法,像是每行程式最後忘了加上”;”
或者是下錯指令(例如cout打成了cou之類的),這些錯誤,通常在compiler
時,VC++就會列出錯誤的程式行號,以及錯誤的原因,都顯示在底下的除錯
區,您只要用滑鼠在錯誤的地方點兩下,程式編輯區就會切換到發生程式錯
誤的地方。
下圖顯示test.cpp檔中的第7行產生語法錯誤,只要在該行中用滑鼠左鍵快速
點兩下,即可切換至test.cpp檔中的第7行檢視該行。
另一種邏輯錯誤,則是在compiler和執行程式後,雖然程式語法上沒有錯
誤,但是執行結果卻不正確,錯誤發生在程式撰寫者的演算邏輯錯誤,造成程
式的執行結果不如預期,邏輯錯誤要除錯相較於語法錯誤來說是比較不容易的
。
這時我們就可以利用VC++所提供的Debugger除錯器,去觀察程式執行的過程
,以及程式中變數值的變化情形,因而找出程式發生錯誤的原因。
§範例:
使用者除了利用Debugger檢視程式錯誤的地方外,還可以用來追蹤程式執行
過程中,各個變數或暫存器內容值的改變情形,舉個例子來說明:
我們使用的範例程式是一個將所輸入的攝氏溫度轉換成華氏溫度的程式,
透過這個例子來說明VC++ Debugger最常用的功能。
開啟一個新的Workspace,並輸入C++的Source File,並將Debugger的
工具列點選出來(在〔Tools〕→ Customize內的ToolBars中點選)
設定中斷點
設定中斷點最簡單的方式是將游漂移動到程式碼中所欲中斷的指令行,
然後有三種方式:
a.按下快速鍵F9
b.按下Build MiniBar上的 Insert/Remove Breakpoint (F9)鍵
c.利用功能列上的 [EDIT]選項→Breakpoints內去設定
將游標移到程式碼中所欲中斷的指令行。
這兒假設要在 fd = cd
您可能关注的文档
- 国概二.doc
- 国内外钢铁工业余热利用新方法、新技术苍大强1,2(1.北京科技大学.doc
- 国立三重商工九十学年度第二次校务会议各处室工作报告.doc
- 国立中正纪念堂管理处九十四年四至五月份演讲活动一览表-阳明大学.doc
- 国立交通大学资讯管理研究所-交通大学资讯管理与财务金融学系.doc
- 国立中正大学教职员工宿舍管理要点-国立中正大学总务处.doc
- 国科会计画案-南台科技大学会计室.doc
- 国立台南艺术大学动美所动画艺术组校外实习表格-动画艺术与影像.doc
- 国立高雄餐旅学院校务基金教学研究工作人员进用管理办法.doc
- 国立竹山高级中学校务发展计画-国立竹山高中.doc
- 工会代表大会运行规则及十大制度解读.docx
- 法院合同法案例分析与学习笔记.docx
- 医疗急救口头医嘱管理流程制度.docx
- 幼儿园科学实验教学设计案例.docx
- 2025秋九年级英语全册Unit2Ithinkthatmooncakesaredelicious课时3SectionAGrammarFocus_4c习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit5WhataretheshirtsmadeofSectionA合作探究二课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit2Ithinkthatmooncakesaredelicious课时4SectionB1a_1d习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit1Howcanwebecomegoodlearners课时3SectionAGrammarFocus_4c习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit5Whataretheshirtsmadeof课时4SectionB1a_1e课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit3Couldyoupleasetellmewheretherestroomsare课时3SectionAGrammarFocus_4c课件新版人教新目标版.pptx
最近下载
- 基于水流影响的砂岩裂缝形成机理及扩展规律实验分析.docx VIP
- 公园绿化养护试题及答案.doc VIP
- 2024年昆士兰缺血缺氧性脑病临床指南解读(节选).pptx VIP
- 三上语文-《阅读要素专项训练》(1).pdf VIP
- 重庆交通大学钢结构课程设计-平台梁.doc VIP
- 2025届高考语文复习:小说复习之散文化小说——以2023年新课标Ⅱ卷高考题《社戏》为例+课件.pptx VIP
- 衡水中学2026届高三年级(四调)考试物理试题(真题含答案解析).docx VIP
- 植物绿化养护试题及答案.doc VIP
- 中国临床肿瘤学会(CSCO)癌症诊疗指南2025.docx VIP
- 半导体材料(大学课件)张源涛-半材第4章总结.doc VIP
原创力文档


文档评论(0)