gdb使用-《软件调试的艺术》读书笔记【chap1-2】

《软件调试的艺术》书中讲了三种工具:gbd;ddd;eclipse。主要还是讲gdb。

chap1预备知识             {20131021}

gdb使用-《软件调试的艺术》读书笔记【chap1-2】_第1张图片

1.3.3 部分需要实践中体会

1.7 实践一下

root@ubuntu:/home/debug/chap1# gcc -g -Wall -o insert_sort ins.c   【-g】让编译器将符号表保存在生成的可执行文件中。

只是调试到书中提到的,还需要努力下

gdb使用-《软件调试的艺术》读书笔记【chap1-2】_第2张图片

1.8 .gdbint文件没找到,需要单独看下

 

chap2.停下来环顾程序  {20131019}

gdb使用-《软件调试的艺术》读书笔记【chap1-2】_第3张图片本章思维导图

调试器通知程序暂停执行,并能够检查变量,跟踪执行路径。

2.2 GDB的工作针对的是机器语言指令,而不是源代码行。所以当GDB执行到第35行断点时,可以认为GDB是在源代码的第34和35行之间等待。

      GDB可以使用源代码行,是因为可执行文件中包含了额外信息。【mark】

2.4 发现设置断点后没有正好在预期放断点的地方产生断点:编译时使用选项优化了代码;GDB认为这行调试没什么意义。

2.5 示例

gdb使用-《软件调试的艺术》读书笔记【chap1-2】_第4张图片b是break的简写;设置main和swap函数的断点

gdb使用-《软件调试的艺术》读书笔记【chap1-2】_第5张图片出现注1的情况:因为在任何给定时间,GDB都有一个焦点,将当前的文件看成是“活动”文件;应用list命令后,焦点转移到另一个文件。

                                                             tbreak命令是,设置临时断点

2.6 Q:在不离开GDB的情况下,如何重新编译?【不打开多个tty时】

      所有gdb设置断点,在quit断出后则不存在了,但书上说可以保存断点,是将断点放在源代码所在目录的.gdbinit启动文件中。【mark】我没find到。

2.9 next和step就是相当于f10和f11的区别; continue,finish,until命令的区别没细理解

2.10  break main if argc>2   入参个数大于2的情况,main函数设断点

2.11 commands命令没理解

你可能感兴趣的:(gdb使用-《软件调试的艺术》读书笔记【chap1-2】)