Linux下C编程基础之:gdb调试器
可以看到,该例中在第8行(也就是运行完第7行的for循环)设置了一个"i==0"的条件断点,在程序运行之后可以看出,程序确实在i为10时暂停运行。
3.gdb中源码查看相关命令
在gdb中可以查看源码以方便其他操作,它的常见相关命令如表3.13所示。
表3.13 gdb源码查看相关相关命令
命 令 格 式 | 含 义 |
list <行号>|<函数名> | 查看指定位置代码 |
file [文件名] | 加载指定文件 |
forward-search 正则表达式 | 源代码的前向搜索 |
reverse-search 正则表达式 | 源代码的后向搜索 |
dir DIR | 将路径DIR添加到源文件搜索的路径的开头 |
show directories | 显示源文件的当前搜索路径 |
info line | 显示加载到gdb内存中的代码 |
4.gdb中查看运行数据相关命令
gdb中查看运行数据是指当程序处于"运行"或"暂停"状态时,可以查看的变量及表达式的信息,其常见命令如表3.14所示。
表3.14 gdb查看运行数据相关命令
命 令 格 式 | 含 义 |
print 表达式|变量 | 查看程序运行时对应表达式和变量的值 |
x <n/f/u> | 查看内存变量内容。其中n为整数表示显示内存的长度,f表示显示的格式,u表示从当前地址往后请求显示的字节数 |
display 表达式 | 设定在单步运行或其他情况中,自动显示的对应表达式的内容 |
backtrace | 查看当前栈的情况,即可以查到哪些被调用的函数尚未返回 |
5.gdb中修改运行参数相关命令
gdb还可以修改运行时的参数,并使该变量按照用户当前输入的值继续运行。它的设置方法为:在单步执行的过程中,键入命令"set 变量=设定值"。这样,在此之后,程序就会按照该设定的值运行了。下面,笔者结合上一节的代码将n的初始值设为4,其代码如下所示:
(gdb) b 7
Breakpoint 5 at 0x804847a: file test.c, line 7.
(gdb) r
Starting program: /home/yul/test
The sum of 1-m is 1275
Breakpoint 5, main () at test.c:7
7 for(i=1; i <= 50; i++)
(gdb) set n=4
(gdb) c
Continuing.
The sum of 1-50 is 1279
Program exited with code 031.
可以看到,最后的运行结果确实比之前的值大了4。
注意 | gdb使用时的注意点: · 在gcc编译选项中一定要加入"-g"。 · 只有在代码处于"运行"或"暂停"状态时才能查看变量值。 · 设置断点后程序在指定行之前停止。 |
- Linux下C编程基础之:常用编辑器(08-13)
- Linux下C编程基础之:gcc编译器(08-13)
- Linux下C编程基础之:make工程管理器(08-13)
- Linux下C编程基础之:使用autotools(08-13)
- Linux下C编程基础之:实验内容(08-13)
- Linux下C编程基础之:本章小结与思考与练习(08-13)