《软件调试艺术》读后感一

1、预备知识

在进入正题之前要对GDB有一个大概的了解,GDB能干什么?GDB现在的实用性还有多少?等问题,我们带着这样的问题去书中探索,这样会使我们学到更多的东西。

首先,我看一张图,这张图不是我画的,但是这张图基本涵盖了《软件调试艺术》这本书的所有内容。也就是这本书的浓缩版,精华版。

这本书主要以GDB调试软件为基础进行讲解,可能在此之前我们大家对调试并不关注,或者都没有觉得调试有多重要。我们总是写代码,这些代码的工程比较小,代码量少,所以调试工具没有太大的帮助。如果我们的程序非常的大,并且还有很多的线程,这时出现问题之后我们如果一眼找到错误。如果指针没有释放,或者是多重释放带来的错误,我们又如何应对呢?所以学会调试技巧和方法可以为我们提供思路,不至于在以后的工程中遇到问题之后无从下手。

2、工具介绍

GDB、DDD和Eclipse,后面这两种都是在前面这种的基础之上建立起来的,DDD只是GDB的一个外包装,内部核心其实还是GDB。如果问我这几种调试器工具哪种好,我也不能给出确切的答案,毕竟界面和字符各有各的好处,界面的好处是直观,操作简单。字符命令形式的调试器用起来灵活,你可以按照你的意思进行输出、打印等,并不需要受到任何的限制。所以你可以选择你喜欢的调试器。

GDB中的调试命令无外乎就是watch(设置监视点)、clear(清除断点)、condition(条件断点)、Info、backtrance(bt)、list、tbreak(临时断点)、frame、down、up等等。字符界面调试代码就是使用这些命令的一些组合进行使用,当然GDB里面还可以定义宏,如果你一直调试一种应用,并且有一贯的步骤,那么你可以将这些步骤写成一系列的宏。将这些的宏放启动文件里面,可以放入原始启动文件也就是主目录中的启动文件,也可以在本地项目目录中创建启动文件。它们读入的先后顺序不一样,主目录的.gdbinit文件是在加载可执行文件之前,而本地的.gdbinit文件是在加载可执行文件及符号表之后。如果你将本地启动文件写成其它文件名,你还可以通过使用gdb
–command=文件名 x进行加载,这个命令的意思:在可执行文件x上运行GDB,首先要从文件z中读取启动配置。

介绍这么多,主要是希望大家对GDB有一定的了解。

引用:

《软件调试艺术》

图片:http://www.cnblogs.com/wolflion/p/3381444.html

时间: 2024-10-13 20:51:38

《软件调试艺术》读后感一的相关文章

梦断代码读后感3

梦断代码终于读完了,然而感悟却还没有完.正如作者所说,这是一个关于一队人马并肩托起代码大石.欲将其推上山顶,虽历经磨难,但仍奋力创造某种有用.丰富且持久之物的故事,读罢想来也许最大的收获是对软件工程有了更加深刻的理解. 我们觉得软件难以对付,是因为它不可见,不可见也并非唯一问题,我们也看不见电力.磁力或重力,但却能为多数实用目的可靠地预测其行为,可是我们没有理论可以用来计算对软件尺寸.性能和复杂度的限制,甚至不能以符合逻辑的手段来说明软件产品要做的事情以及它如何做到的问题.就像那个关于软件工程的

梦断代码读后感2

读<梦断代码>已有一段时间了,书中的开发软件的经验是给我们最大最宝贵的收获,虽然书还没读到最后但仅仅读到现在他给我的收获已经很多,此次的感受就针对书中的团队合作做一些总结. 梦断代码主要就是讲了一个开源软件项目——Chandler的失败案例,此软件开始的规划是十分庞大的,团队的开发者也是给与了此软件很大的厚望和努力,团队的开发者也是软件开发的精英团队但最终他还是难逃失败的厄运,这不仅仅说明了软件难做,这也同样说明了软件开发过程中的每一个步骤都是十分重要的从需求分析到软件测试甚至软件维护都是至关

梦断代码读后感1

今天开始读梦断代码了. 书中说道,“关于软件缺陷的话题,只要谈上几分钟,必会有人拍案叹道,‘为什么就是不能像造桥那样造软件?’”的确,掩卷长思,为神马不能像造桥那样造软件哪!细想起来,两者之间的根本不同在于,一个是体力劳动,以机械为主:一个是脑力劳动,以人为主.人,从来就不是一个确定的东西,有喜怒哀乐,有自己的偏爱和偏见,充满了各种不确定性,以它为主的项目,自然不可能做到分毫不差.软件工程的主要目的,就是尽量把这种不确定性从项目中剥离出来,使做软件真正成为一个工程,而不是个人英雄主义的胡拼乱凑.

梦断代码 读后感2

团队开发要有好的初期规划以及明确的项目目标,目标变来变去是很多项目失败的根本.连自己都不知道做什么,还能指望做出什么来.这同样说明了需求分析的重要性,要了解客户的需求从客户的角度看问题.所以所谓的目标就是客户的需求,满足了客户的需求目标也就算达到了.其次,确定好目标后在软件开发的关键过程中团队的配合协作十分重要,尽最大可能发挥自己在团队中的作用相互协作多做总结多讨论问题,这是很重要的步骤,梦断代码中的团队合作已经相当不错了,但还难逃失败,我们的团队所以更应该努力做到更好.   在<梦断代码>这

梦断代码读后感(二)

<梦断代码>内容简介: 软件乃是人类自以为最有把握,实则最难掌控的技术.<梦断代码>作者罗森伯格对OSAF主持的Chandler项目进行田野调查,跟踪经年,试图借由Chandler项目的开发过程揭示软件开发中的一些根本性大问题.<梦断代码>是讲一事,也是讲百千事:是写一软件,也是写百千软件:是写一群人,也是写百千万人.任何一个在软件领域稍有经验的技术人员看完<梦断代码>,必掩卷长叹:做软件难. 作者简介 Scott Rosenberg:作家,编辑,1981年

梦断代码读后感(三)

梦断代码: 一群人像是守护着一个刚出生的婴儿,细心呵护,无微不至.将所有精力都投入对他的照顾,可是,到头来功亏一溃,驮着巨石上山但是却在最后阶段滚了下来.初时紧紧是一个小小的问题,但后来却逐渐扩大,成为压死骆驼的最后一根稻草!! 但是我也看到了他们的奋不顾身 ,这是一种精神,一种值得我们学习的精神! 如果我以后也从事这门工作的话,希望我也能和他们一样,拥有为之奋斗的精神!!

梦断代码读后感之终结篇

好吧,历时一个月之久的梦断代码阅读计划终于结束了,在王老师的要求之下,我粗略的浏览了一遍这本书,看到自己喜欢的地方就放慢脚步,细细品味. <梦断代码>是讲一事,也是讲百千事:是写一软件,也是写百千软件:是写一群人,也是写百千万人.诚然这本书里有一个大故事,大故事里面又包含了许多小故事,虽然他最后失败了,但是他给我们留下了许多的启发和感受. 读完这本书最大的感受就是做软件真难,有时候真的不是特别的理解他们为什么浪费自己的时间去做面对那些枯燥的代码,一遍又一遍的去调试修改那些程序,他们有时候就像一

梦断代码读后感——终结

<梦断代码>这本书读了将近一个月的时间,终于读完了,虽然没有细读,但是还是了解了它的大概内容,知道在讲些什么.本来计划每三章就发一篇读书笔记的,因为时间很紧,就没按计划来,我一般都是晚上看,看完就来不及发了,一直拖到都看完. 这本书的译后记提到了Chandler项目的结局,它失败了,它成了众多失败软件项目中的一个.这个结局无疑又加重了自己看完这本书后心情的沉重:做软件真不容易. 今天的软件项目,已经成为一个错综复杂的建筑工程,不断变化的应用环境(包括使用者),使得软件需求被不断更新,今天100

梦断代码-读后感1

这几天阅读了梦断代码,这本书第一章软件时间,第一点讲的是我在在一个大学里玩了一个叫sumer的游戏嗯,它是一个空白面板,只须要我们花几个钟头学点语言就可以改游戏,玩游戏一样容易,当时作者已经沉迷于其中,后来作者担任一个杂志的主编和程序设计员,20世纪90年代,科技行业的兴盛给我们带来了互联网时间的概念,一切皆有可能发生技术产生公司创立创造财富,而且速度惊人,这意味着你没有时间做到尽善尽美,无须担心,因为别人也一样,在做软件的过程中,时间似乎确实时快时慢,如果一切顺利,你会沉浸在心理学称之为留是的

梦断代码 读后感

这几天的学习中空余时间大体浏览了一下梦断代码这本书,但确实没有很细致的阅读.但依然有所收获. 开头的第0章就是打破人们固定的定型思维,章节从第0章开始,作者无意搞笑只是想说明一点程序员的计数方式从0开始,仔细一想确实如此,难的不说就说最基本的数组便是从0开始储存. 第一章 死定了  布鲁克斯法则:向已延误的项目中补充人力,只会使其继续延误.这句定理说明人多力量大在软件行业不一定能成立,进行中的项目补充人力只会花费更多的时间对新人进行讲解. 第二章Agenda之魂 该篇主要讲了卡普尔的一些故事,在