Linux 包含了一个叫 gdb 的 GNU 调试程序. gdb 是一个用来调试 C 和 C++ 程序的强 力调试器. 它使你能在程序运行时观察程序的内部结构和内存的使用情况. 以下是 gdb 所提供的一些功能:
- 它使你能监视你程序中变量的值.
- 它使你能设置断点以使程序在指定的代码行上停止执行.
- 它使你能一行行的执行你的代码.
在命令行上键入 gdb 并按回车键就可以运行 gdb 了, 如果一切正常的话, gdb 将被启 动并且你将在屏幕上看到类似的内容:
gdb 基本命令
gdb 支持很多的命令使你能实现不同的功能. 这些命令从简单的文件装入到允许你检查 所调用的堆栈内容的复杂命令, 表27.1列出了你在用 gdb 调试时会用到的一些命令.
命令描述
- file 装入想要调试的可执行文件.
- kill 终止正在调试的程序.
- list 列出产生执行文件的源代码的一部分.
- next 执行一行源代码但不进入函数内部.
- step 执行一行源代码而且进入函数内部.
- run 执行当前被调试的程序
- quit 终止 gdb
- watch 使你能监视一个变量的值而不管它何时被改变.
- print 显示表达式的值
- break 在代码里设置断点, 这将使程序执行到这里时被挂起.
- make 使你能不退出 gdb 就可以重新产生可执行文件.
- shell 使你能不离开 gdb 就执行 LINUX shell 命令.
gdb 支持很多与 UNIX shell 程序一样的命令编辑特征. 你能象在 bash 或 tcsh里那样 按 Tab 键让 gdb 帮你补齐一个唯一的命令, 如果不唯一的话 gdb 会列出所有匹配的命 令. 你也能用光标键上下翻动历史命令.
gdb 应用举例
本节用一个实例教你一步步的用 gdb 调试程序. 被调试的程序相当的简单, 但它展示了 gdb 的典型应用. 我用了一个简单的Hello例子展示了GDB的基本调试功能,先给出源代码:
[lxiron@FedoraOS myfolder]$ gcc -g hello.c -o hello ------编