程序调试 ——基础与技巧 西安交通大学 王树升.

Slides:



Advertisements
Similar presentations
1 曾老師、各位同學大家好 ! 首先自我介紹 ; 個人聯合大學電機系 畢業,服完兩年兵役後, 75 年開始就 業 ; 四年內換了幾個工作, 79 年創立貿 特科技, 90 年、 91 年分別於大陸寧波 與昆山設立特一電子與柏特電子,經 歷 20 年的工作磨鍊,今天事業上算是 穩定、成熟 ! 承蒙曾老師看重,利用一.
Advertisements

办公室保健指南. 减少辐射篇 ❤显示器散发出的辐射多数不是来自它的正面,而是侧面和后面。因此,不要 把自己显示器的后面对着同事的后脑或者身体的侧面。 ❤常喝绿茶。茶叶中含有的茶多酚等活性物质,有助吸收放射性物质。 ❤尽量使用液晶显示器。
中正國中 特教組長 粘玉芳 校內分機 : /02/21. 下列條件擇一: 一、身心障礙手冊 二、特殊教育學生鑑定及就學輔導會證明.
示範課 -- 作文立意. 重溫作文構思課  構思嘗試深化  多角度思考  宜先剖析題目, 運用聯想, 循序漸進擴大範圍, 然後歸納材料, 定訂主題  同學的作品, 反映部分能夠掌握, 主線清晰, 層 層深入, 舉例恰當  但有部分同學只有枝葉, 欠缺主線, 更無中心思 想, 反映立意不足.
魏 饴. 处级干部培训班讲座 一、卓越干部的德行素质  常修为政之德、常思贪欲之害、常怀律己之心!  孔老夫子有个观点 “ 为政以德,譬如北辰居其所而众星拱之。 ”  司马光《资治通鉴》 “ 才者,德之资也;德者,才之帅也。 ” “ 德 ” 胜 “ 才 ” 谓之 “ 君子 ” , “ 才 ”
幼教人員法律事件探討 ─ 幼兒教育及照顧法 姚其壯 第一章 總則〈第一條至第六條〉 第二章 幼稚園設立及其教保服務 〈第七條至第十四條〉 第三章 幼稚園組織與人員資格及權益 〈第十五條至第二十八條〉 第四章 幼稚權益保障 〈第二十九條至第三十三條〉 第五章 家長之權利與義務 〈第三十四條至第四十條〉
畫面中的兩個人要去參加金融業儲備幹部的面試 活動,你認為誰的面試穿著是正確的? V.S 動動腦 V.S 動動腦 慎重 讓人感到 尊重 輕便 讓人聯想 隨便 畫面中的兩個人要去參加金融業儲備幹部的面試 活動,你認為誰的面試穿著是正確的?
IT 服务与业务发展融合 王维航 北京华胜天成科技股份有限公司 十分钟的悲剧.
高考心理辅导  福建中医药大学  林山  高考是什么?  真有那么 “ 苦大仇深 ” ?  为什么不能是 “ 快乐挑战 ” ?  高考(事) --- 认知(怎么个事 - 压力大小) --- 情绪反应(烦躁、焦虑、害怕 VS 自信、 从容、期盼) --- 行为表现(发挥正常.
蕭文生 中正大學法律系教授兼法學院院長.  壹、前言  貳、司法院釋字第六八四號解釋  參、大學生之受教權  肆、大學自治之範疇  伍、大學生之其他基本權利  陸、救濟管道之改善  柒、結語.
大陸學歷採認相關問題 楊景堯 淡江大學中國大陸研究所. 學歷採認的定義與範圍 廣義的定義 — 承認學歷 狹義的定義 — 具備任職, 任教, 考試資格 範圍 — 高等教育為主 台灣人取得大陸學歷的採認 大陸人取得大陸學歷的採認 外國人取得大陸學歷的採認.
提昇餐廳供餐品質 及服務滿意度 標竿學習主題 標竿學習計劃排定進度 分析客戶對餐廳供餐滿意度偏低原因:
第八課 謝 天. 第八課 謝 天 作者主旨文章作法 民國 陳之藩 謙卑感 恩,功 成不居 以「謝天」的傳統觀念 為中心,經由疑惑、思 索、領悟三個層次的敘 述,賦予新的意義 ★題目含義:表示對很多「人」的感謝。
模仿貓 記敘文 ( 童話 ) 作者: 海倫、波頓 課文朗讀課文朗讀、模仿大賽 作者 美國女畫家,她用藝術家的嚴 肅態度和精神,幫兒童讀繪畫 插圖,並得過許多次獎。她的 作品藝術價值高,有雨本成為 美國美術協會兒童讀物展覽的 入選作品。她常常自寫自畫, 文筆很不錯。
蔬菜大觀園 V.S 大家來種菜 蔬菜的外觀及分類  蔬菜是我們常吃的食物,蔬菜的外觀形狀不 同,有各種不同的顏色、形狀、氣味等,嚐 起來的味道也不相同。  蔬菜的營養價值不盡相同,可實用的部位也 不同,有的是根、有的是莖、有的是葉、有 的是花、有的是果實,還有的是種子。  依據蔬菜種類和食用部位的不同,可以將蔬.
社工之路的通行證 --- 社工師證照 考試心得分享 東吳大學社工系碩一 呂錦綸. 一、考前準備 閱讀主流老師的書籍、掌握各科概要。 閱讀主流老師的書籍、掌握各科概要。 重視概念性的知識,打好基礎是很重要低 ~ 重視概念性的知識,打好基礎是很重要低 ~ 是必備讀物 ! 是必備讀物 ! 勤作考古題,參考當年度碩士班考試及高.
一、真愛密碼 二、尋求真愛 三、有自尊的愛. 。如果雙方對愛情產生 質疑、困惑時,則表示 彼此之間的愛情關係仍 有 待加強或釐清,千萬別 急著為自己的人生大事 下決定。 我是一個 16 歲的未婚媽媽,發現自 己懷孕時,已經五個月大了,我知 道自己沒能力照顧孩子,在驚訝之 於,大人們只好坦然接受,幫我找.
大地遊戲王 課程實錄.
政府的权力:依法行使. 政府的权力:依法行使 重庆“最牛钉子户”事件 九龙坡区法院一名张院长称,法院已组织6次调解,有时1天就有2次调解。3月28日下午,九龙坡区委书记郑洪还专门接待吴苹3小时。1日,在法院组织下,拆迁双方基本达成口头协议,今天下午,双方签字生效。按协议,吴苹选择了异地实物安置方案,开发商将其在沙坪坝开发的一处门面房,按同样面积交付吴苹,吴同意此方案.
第八課 馮諼客孟嘗君 謀職達人 來也.
心理学辅导.
蔬菜大觀園V.S大家來種菜 高雄市楠梓區翠屏國中小教師 林珮如
“腸”保安康 現代人的腸胃保健.
如何做個稱職的父母 財團法人雲林縣雲萱婦幼文教基金會 王招萍.
那一段「詩聲戀」的日子 孟令今老師.
獨立國家國協 1.地形 2.氣候 3.產業.
綜合活動領域 教學分享.
诚信人生 ---高二(2)班主题班会.
兩岸融合教育之議題: 以東莞台商子弟學校為例
航向未來 飛揚國際 —關於華航與長榮的財務報表 指導老師: 組員:張甄芸 4A 鄭雅華 4A070079
世界史.
百年中行 全球服务 中小企业授信业务介绍 中国银行江苏省分行中小企业业务部 2013年10月.
面对苦难 (约翰福音15:18-16:4) 2/22/15 我们不属世界,神从这世界中拣选了我们,却没有为我们另设一处“世外桃源”,乃是让我们住在地上,以他的信实为粮,以他的生命为光。既然在这被罪玷污的世界中,就会有苦难仇恨,然而它们不能打倒我们,因为它们 无目的 无缘故 无胜算 在世上我们虽有苦难,也可以放心,因为耶稣已经胜了世界。
如果你没法阻止战争,那你就把战争的真相告诉世界
102學年度第二學期 208家長座談會 歐陽美慧.
加強水銀體溫計稽查管制及回收 回收作業須知及緊急應變措施
小綠葉蟬的『祕蜜』~ 蜜香烏龍茶.
個人投資理財與策略 富蘭克林:邱良弼.
第六章 中国公务员制度 干部 VS 公务员.
穿越迷雾,读懂全球化经济本质 谈美国次贷危机与人民币升值问题.
教育部 試辦中小學 教師專業發展評鑑基本概念 台中教育大學 徐照麗.
大陸教育基本現況認識 楊景堯 淡江大學中國大陸研究所.
第三章 魏晉南北朝的分合.
移民與文化--鄉愁的想像 王婉甄.
性別平權.
青龙偃月刀 韩少功. 青龙偃月刀 韩少功 走近作者 韩少功,湖南长沙人。1985年倡导“寻根文学”的主将。1996年出版的长篇小说《马桥词典》。比较著名的有《爸爸爸》、《女女女》等。
第4章 分錄及日記簿 4-1 借貸法則 4-2 日記簿的格式及記錄方法 4-3 分錄的意義及記錄方法 4-4 常見分錄題型分析
2008年3月8日 順德聯誼總會何日東小學上午及下午校
彰化基督教醫院 健康檢查科 / 家庭醫學科 吳美鳳醫師
經濟系 在學什麼專業? 經濟學是一門研究人類經濟行為的社會科學 為什麼鑽石會比水貴? 為什麼台灣中央銀行不多印一點台幣, 以增加大家的財富?
葉金源臨床心理師 台南市臨床心理師公會理事長 台南市社區大學生命與健康學程講師 台南縣家庭教育中心審查委員 台南地方法院家事調解委員
公文寫作及實務.
厌讼与好讼:明清诉讼文化面面观 廖华生 江西师范大学历史文化与旅游学院.
解读社会保险.
第十三屆 Step.1 我們的目標 Step.2 我們的角色 Step.4 權利與義務 義務 權利 年繳會費五百元整
财务管理.
植物保护 课程整体设计 汇报 申报省级精品资源共享课建设 植物保护课程组.
政府扶持资金通览 技术改造篇.
本科生医保资料的提交.
統計圖表的製作.
人際關係 授課老師:林東龍 授課日期:2005/12/17.
《结构力学认知实验》(授课形式)的上课时间改为: 5月5日(周二)晚上18:00~19:30和19:30~21:00,
《结构力学认知实验》(授课形式)的上课时间改为: 5月7日(周四)晚上18:30~20:00和20:00~21:30,
兒少保護通報處理流程介紹 臺中市家庭暴力及性侵害防治中心 陳秀婷/張美慧 社工督導員 2012/10/19.
畢業資格審查系統 操作步驟說明.
新制退休實務計算說明- 現職人員退休範例說明
106 學年度新生入學說明會 國立臺灣海洋大學 教務處簡介
學士學位畢業論文說明 逢 學 大 甲 土 理 管 地 2009/10/05.
高雄市97年度國民小學閱讀計畫創新教學-教案達人創新教學方案
浮雕畫 探索線條的魅力 劉文涵老師.
Presentation transcript:

程序调试 ——基础与技巧 西安交通大学 王树升

概述 任何一个天才都不敢说,他编的程序是完全正确的。几乎每一个稍微复杂一点的程序都必须经过反复的调试,修改,最终才完成。所以说,程序的调试是编程中的一项重要技术。 在应用程序中发现并排除错误的过程叫做调试。 选用VS2005作为开发平台,语系为C系列(C,C++,C#)。

1. 错误 程序设计中常见的错误可以分为三种: 编译错误 运行时错误 逻辑错误

1.1 编译错误 编译错误是指程序在编译过程中出现的错误。它是由于不正确的编写代码而产生的如非法使用或丢失关键字、遗漏了某些必需的标点符号、函数调用缺少参数或传递了不匹配的参数等等。 例: fore(int i = 0; i < 100; i++)//关键字书写错误 {}

1.1编译错误

1.2 运行时错误 运行时错误是指应用程序在运行期间执行了非法操作或某些操作失败,如打开的文件未找到、磁盘空间不足、网络连接断开、除法中除数为零等等; 例:数组下标越界是一种典型的运行时错误。 int [] arrayX = new int [4]; for(int i = 0; i<5;i++){ arrayX[i] = i; }

1.2 运行时错误

1.2运行时错误

1.3逻辑错误 逻辑错误是指应用程序未按照预期的方式运行时所产生的错误。一般来讲,这不是属于语法层次的错误,应用程序可以执行,但是得不到正确的预期结果。 例: 对于一个数组的初始化,预期对其某个特定位置赋初始值,其余置零: int [] array = new int [100]; array[55] = 55; for(int i = 0;i<100;i++) array[i] = 0; 那么在这段代码完成后就没有得到我们预期的结果(代码执行顺序的逻辑错误)。

2.调试的类别 调试方法分为两种:动态调试和静态调试。 程序的静态调试就是在程序编写完以后,由人工“代替”“模拟”计算机,对程序进行仔细检查,主要检查程序中的语法规则和逻辑结构的正确性。实践表明,有很大一部分 错误可以通过静态检查来发现。通过静态调试,可以大大缩短上机调试的时间,提高上机的效率。

2.调试的分类 程序的动态调试就是实际上机调试,它贯穿在编译、连接和运行的整个过程中。根据程序编译、连接和运行时计算机给出的错误信息进行程序调试,这是程序调试中最 常用的方法,也是最初步的动态调试。在此基础上,通过“分段隔离”、“设置断点”、 “跟踪打印”进行程序的调试。 这里主要讲解动态调试。

2.1动态调试 调试应用程序的过程中,可以充分控制应用程序的执行过程,包括以不同的方式启动调试过程、中断应用程序的执行等等。 主要有: 开始执行F5(Go):应用程序开始执行并一直执行下去直到遇到断点或者程序结束。 逐语句Step Into(F11):应用程序开始执行第一条语句然后中断,当遇到有函数调用时,执行过程会进入到被调用函数的内部。

2.1动态调试 逐过程Step Over(F10):与逐语句相似,但是它不进入到被调用函数的内部,而是把函数调用当作是一条语句来执行。 Step Out(Shift+F11):与之相反,step out是跳出当前进程,返回到调用它的外层代码,该过程执行完毕。 Toggle Breakpoint(F9):在当前光标所在行添加断点。

2.1动态调试 VS05为用户提供了3种步进单位。 行:步进一次执行一行源代码。(有可能一行代码中有多条语句) 语句:步进一次执行一条语句。 指令:步进一次执行一条机器指令。 可以通过【调试】菜单中的【窗口】中修改调试方式来进行选择。

3.断点 断点是调试应用程序时经常使用的一种工具。 使用断点前必须要在代码中插入断点。(F9) VS中使用【新建断点】命令来选择断点类型以及设置“高级”断点。例如:点击次数是指断点所在位置运行的次数,到达条件时才中断程序。 各IDE请参照其技术手册。

3.一些较好的技巧 使用预定义(调试标记) 在编写程序的时候,往往需要获得一些中间信息例如制作日志文件来观察应用程序是否是按照我们预期来运行的。那么这个情况下就可以使用预处理#define定义调试标记。

3.一些较好的技巧 运行期间的调试标记 可以使用定义bool变量来决定是否执行调试语句。

3.一些较好的技巧 使用断言 c系列中的assert()断言的使用。

3.一些较好的技巧 最好写出备注 这是个良好的习惯,方便自己也方便后人。为关键变量以及各个函数功能写出言简意赅的注释。