GDB调试的学习
GDB主要有以下四方面功能
1、按照自定义的方式启动运行需要调试的程序。
2、可以使用指定位置和条件表达式的方式来设置断点。
3、程序暂停时的值的监视。
4、动态改变程序的执行环境。
GDB十个基本调试命令
file<文件名> | 加载被调试的可执行程序文件 |
---|---|
run | 重新开始运行文件 |
start | 单步执行,运行程序,停在第一执行语句 |
list | 查看原代码,简写l |
set | 设置变量的值 |
next | 单步调试(逐过程,函数直接执行,简写n) |
step | 单步调试(逐语句:跳入自定义函数内部执行),简写s |
backtrace | 查看函数的调用栈帧和层级关系,简写bt |
frame | 切换函数的栈帧,简写f |
info | 查看函数内部局部变量的数值,简写i |
finish | 结束当前函数,返回到函数调用点 |
continue | 继续运行,简写c |
打印值及地址,简写p | |
quit | 退出gdb,简写q |
使用命令readlef查看可执行文件是否带有调试功能
readelf -S main|grep debug
如果有debug说明有调试功能,如果没有debug。说明没带有调试功能,不能被调试
调用方式启动运行无参程序
编译main.c程序
gcc -g main.c -o main
进入gdb调试环境并载入调试程序main
gdb
file main
r :执行被调试文件