Linux下的gdb(GNU Debugger)是一个用来调试C、C++程序的调试器(命令行方式的调试器),能够在程序运行期间观察程序的内部结构和内存的使用情况。程序员也可以使用gdb来跟踪程序中的错误,从而减少程序员的工作量。gdb主要提供以下功能:
- 设置断点(断点可以是条件表达式),使程序在指定的代码行上暂停执行,便于观察;
- 单步执行程序,便于调试;
- 查看程序中变量值的变化;
- 动态改变程序的执行环境;
- 分析崩溃程序产生的core文件。
gdb filename //gdb自动调用该文件进行调试
或者:
gdb //先启动gdb调试工具
File filename //通过File命令装入想要调试的文件
为了使gdb调试工作,编译的时候要包含调试信息(-g或-ggdb),调试信息包含了程序中的每个变量类型和在可执行文件中的地址映射及源代码的行号。而gdb正是利用这些信息使源代码和机器码相关联。
gcc -ggdb3 -pipe -Wall -pedantic -o hello hello.c