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

1、 GDB调试技

在谈这个问题前我们有没有遇到过这种场景,每次要改动一次代码,然后make,之后gdb调试,然后出gdb中quit,再次改动再次make再次gdb进入再次quit一直反复着一个工作。那有没有方法能够避免这种反复事情呢?毕竟程序猿对这种反复的步骤非常反感。

避免的方法例如以下:在我们对代码改动和编译时另外开一个窗体,这个窗体专门用来改动和编译。GDB调试窗体不要关闭。当在gdb命令行以下输入run(r)命令时。gdb可以又一次载入新编译的程序。

这时里面设置的断点都还存在,这里的断点不包含暂时断点,这你是知道的。仅仅是有所偏差,为什么有偏差,是由于之前设置的断点的行号还是曾经的行号,可是如今代码有可能加入了很多。这样就造成一定的偏差。

在实际项目中。一个项目不可能一天就能完毕,有时电脑还是要关机,关机可能是主动,也可能是被动。

这样重新启动之后之前设置的断点都会消失,这时我们能够将我们归纳的调试所有写进.gdbinit文件里,这个文件的位置已经在前面介绍过,不记得的能够翻阅前面的文章。

2、清除断点或监视点

删除断点或监视点能够使用delete命令,命令格式例如以下:

deletebreakpoint-list

delete不加參数是删除全部的断点。可是须要确认,以避免你是误操作,假设不须要确认。则须要在.gdbinit启用文件里写入set confirmoff关闭确认功能。

clear命令:清楚gdb将运行的下一个命令处的断点,这样的方法使用与要删除gdb已经到达的断点除的情况。

使用方式例如以下:

clear function、filename:function、line-number和filename:line-number。每一个断点都能够被启用或禁止。

仅仅有当GDB遇到启用的断点时,才会暂停程序的运行,它会忽略禁止的断点。

3、禁止和启用断点

disable breakpoint-list命令来禁用断点。使用enable breakpoint-list命令来启用断点,breakpoint-list使用空格分隔符的列表。

不带不论什么參数地运行disable命令将禁止全部断点。不带不论什么參数的enable命令将启用全部断点。enable once命令是启用一次,运行一次后将会处于禁止状态。

所以断点的部署分为三个状态:keep(保持)、del(删除)和dis(禁用)。

4、next和step命令

next称为单步越过,step是单步进入。next(n)命令运行函数,不会在当中暂停,也就是不会进入函数体的内部。这个命令和step(s)命令都是单步调试。可是s命令会进入函数的内部。

如:

a = 5;

b = 10;

result = add(a,b);

printf(“%d\n”, result);

假设是next进行调试,next不会进入add函数。它会暂停在printf语句处,假设使用step命令,则会暂停在add函数的第一条语句。

nextcount相当于单独运行了count次next命令,而continue count的意思是忽略接下来的count个断点。

5、finish命令

fin 命令:指示GDB恢复运行,知道恰好在当前桟帧完毕之后为止,恰当函数返回之后为止。

6、until命令

until恢复程序运行,until命令(u)通经常使用来在不进一步在循环中暂停的情况下完毕正在运行的循环。使用方法例如以下:

until count、until function、until filename:line-number、until filename:function

时间: 2024-10-08 06:19:24

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

梦断代码读后感三

你住在一所还算舒适的房子里,发现冰箱可能有问题.冰块有时会融化,门也关不严实.修理工差不多个把月就得过来修一次.你注意到,这冰箱既笨重又费电,你看上了希尔斯百货公司里面陈列的那些新款冰箱.是时候了,你立即出发,先到几个州看地块,考虑建一所新房.你请到贝聿铭和另外几位大建筑师,做了个初步设计.做这个花了点时间,所以你还得继续忍受那台旧冰箱,它发出烦人的噪音,在夜里叫人难以成眠.你看了几套方案,甚至建造了一.两个原型.时间流逝,你终于选定了设计方案.开始建造前,举办了一场狂欢宴.开工.建屋.庆祝继续

梦断代码读后感(三)

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

梦断代码读后感——终结

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

梦断代码读后感3

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

梦断代码读后感2

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

梦断代码读后感1

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

梦断代码 读后感2

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

梦断代码读后感(二)

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

梦断代码读后感之终结篇

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

梦断代码-读后感1

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