调试工具是程序员做开发的一个很重要的工具,无论多么厉害的程序员都没有办法保证自己编写的程序不会出现一点错误。即使程序编译通过,运行可能会出现很多问题,例如,程序不能运行或运行时程序崩溃异常退出,这些都是程序运行阶段可能遇到的。因为工程项目越大,调试也会相对越困难。因此一个强大调试工具是程序正常运行的保障。
在 Windows 操作系统中,使用的大多是集成的开发环境(IDE),也就是说软件开发工具中已经包含了调试工具,例如 VC、BCB、Dev-C++ 等,这些软件中都集成了调试器。
在 Linux 操作系统中,编译程序使用GCC(GCC 编译器的功能非常的强大,几乎可以编译所有的编程语言),集成的开发环境相对较少,但可以使用的调试工具有很多,例如 GDB、binutil、strace 等,最常用的调试工具是 GDB。
Linux 开发环境中,GDB 相对其他的调试工具,使用范围要更广,使用方式有字符界面、图形界面,可以单独使用,也可以被集成到 IDE 中。GDB 调试工具在 Linux 操作系统中大多是单独使用的。
GDB 调试工具的字符界面和图形界面的比较:
该教程讲解的主要是 GDB 的字符界面的操作使用。因为 GDB 的字符界面和 Linux 系统的操作相似,所以使用时更加容易上手。GDB 调试程序最主要是学习一些命令的使用,掌握了所有的命令也就学会了 GDB。GDB 的调试对象可以是可执行文件、core dump 和进程。该教程讲解的主要以调试可执行程序为主。
GDB 的功能非常的强大,相对于 Linux 开发环境下的其他的调试工具,GDB 可以实现的功能:
检测当前的系统中是否已经安装 GDB 可以在 shell 命令行输入:
gdb -v //查看 GDB 调试工具的版本信息。
如果出现如下的信息,就说明当前的系统中已经安装过 GDB 调试工具。
GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
如果没有,说明当前的系统中没有安装,可以通过以下两种方法进行安装:
以 GDB 的 9.1 版本为例。