调试艺术
文章平均质量分 65
我叫程序猿XXX
这个作者很懒,什么都没留下…
展开
-
《软件调试艺术》读后感一
1、预备知识 在进入正题之前要对GDB有一个大概的了解,GDB能干什么?GDB现在的实用性还有多少?等问题,我们带着这样的问题去书中探索,这样会使我们学到更多的东西。 首先,我看一张图,这张图不是我画的,但是这张图基本涵盖了《软件调试艺术》这本书的所有内容。也就是这本书的浓缩版,精华版。 这本书主要以GDB调试软件为基础进行讲解,原创 2015-06-05 21:06:47 · 1029 阅读 · 0 评论 -
《软件调试艺术》读后感三
1、 GDB调试技 在谈这个问题前我们有没有遇到过这样的场景,每次要修改一次代码,然后make,之后gdb调试,然后出gdb中quit,再次修改再次make再次gdb进入再次quit一直重复着一个工作。那有没有方法可以避免这样的重复事情呢?毕竟程序员对这种重复的步骤很反感。 避免的方法如下:在我们对代码修改和编译时另外开一个窗口,这个窗口专门用来修改和编译。GDB调原创 2015-06-06 00:41:23 · 924 阅读 · 0 评论 -
《软件调试艺术》读后感四
1、条件断点 只有符合某种条件时才在断点处停止。类似于监视点的工作方式,每当该变量的值发生变化时,监视点都会中断。条件断点只会在怀疑有问题的代码处当变量呈现该怀疑值时才中断。设置条件断点:breakbreak-args if (conditon)如:break if (i==700) condition 6999条件可以是:1、 相等、逻辑和不想等运算符(原创 2015-06-06 01:33:19 · 833 阅读 · 0 评论 -
《软件调试艺术》读后感五
1、命令+条件中断和监视点的使用1.1 监视点 监视点是指示GDB每当某个表达式改变了只,就暂停执行指令。如watch i它会使得每当i改变值时GDB就暂停。也可以使得watch后面的更复杂如:watch (I | j > (2) && I > 24) && strlen(name)> 6这是将监视点看作“附加”在表达式上,当表达式的值改变时,GDB会暂停程序的执行。1原创 2015-06-06 08:48:52 · 714 阅读 · 0 评论 -
《软件调试艺术》读后感二
1、 GDB调试基础 GDB可以对各种源代码行、代码地址、源代码文件中的行号或函数的入口等。之所以GDB可以对可执行文件进行调试,是因为在源代码编译成可执行文件时使用了gcc命令中的-g选项,这个选项告诉编译器,在编译成可执行文件是保留符号表。而符号表是GDB能够调试的关键,里面包含了源代码和行号的对应关系,当GDB进行调试时可以看到调试的位置。GDB使用ctrl + x + a原创 2015-06-05 22:02:20 · 712 阅读 · 0 评论 -
《软件调试艺术》读后感六
1、监视局部变量 在GDB中,可以通过调用info locals命令得到当前桟帧中的所有局部变量的值的列表。2、直接检查内存 在有些情况下,可能希望检查给定地址的内存,而不是通过变量的名称。GDB为这种目的提供x命令。 print和display的高级选项,print和display命令允许指定可选的格式。例如p /x y,这样会以十六进制格式显示,而不是原创 2015-06-06 16:42:49 · 713 阅读 · 0 评论 -
《软件调试艺术》读后感七
1、 线程调试 对线程的调试用的最多的可能是thread命令了,查看程序中有多少线程使用Infothreads,进入到某个线程的内部使用thread count,这样就可以进入到count线程的内部。线程调试中用的最多的还有就是bt命令,这个命令主要是查看线程的桟信息,光看桟信息还是差了点什么,那就是使用frame count命令,这个命令可以在桟帧之间移动,如果要查看这个桟的源原创 2015-06-06 19:35:20 · 845 阅读 · 0 评论