作者:京东科技孙晓军
1.GDB介绍
GDB是GNUDebugger的简称,其作用是可以在程序运行时,检测程序正在做些什么。GDB程序自身是使用C和C++程序编写的,但可以支持除C和C++之外很多编程语言的调试。GDB原生支持调试的语言包含:
?C
?C++
?D
?Go
?Object-C
?OpenCLC
?Fortran
?Pascal
?Rust
?Modula-2
?Ada
此外,通过扩展GDB,也可以用来调试Python语言。
使用GDB,我们可以方便地进行如下任务:
?如果程序崩溃后产生了coredump文件,gdb可以通过分析coredump文件,找出程序crash的位置,调用堆栈等用于找出问题原因的关键信息
?在程序运行时,GDB可以检测当前程序正在做什么事情
?在程序运行时,修改变量的值
?可以使程序在特定条件下中断
?监视内存地址变动
?分析程序Crash后的core文件
GDB是了解三方中间件,无源码程序,解决程序疑难杂症的利器。使用GDB,可以了解程序在运行时的方方面面。尤其对于在测试(Test),集成(SIT),验收(UAT),预发布(Staging)等环境下的问题调查和解决,GDB有着日志无法比拟的优势。此外,GDB还非常适合对多种开发语言混合的程序进行调试。
GDB不适合用来做什么:
?GDB可以用来辅助调试内存泄露问题,但GDB不能用于内存泄露检测
?GDB可以用来辅助程序性能调优,但GDB不能用于程序性能问题分析
?GDB不是编译器,不能运行有编译问题的程序,也不能用来调试编译问题
2.安装GDB
2.1.从已发布的二进制包安装
在基于Debian的Linux系统,可以使用apt-get命令方便地安装GDB
apt-getupdateapt-getinstallgdb
2.2.从源代码安装
前置条件
#安装必要的编译工具apt-getinstallbuild-essential
首先,我们需要下载GDB的源码。