如果要在linux环境下使用gdb进行调试,在编译时就应该添加调试信息,以gcc为例:
gcc -o myfile myfile.c -g(此参数为添加调试信息)
开始调试
gdb myfile
查看代码行
l(list) num(查看第num行上下10行代码)(如果不给参数,会展示当前执行位置附近的代码)
代码执行
r(run) 程序开始运行,如果有断点会停在第一个断点处
n(next) 逐过程执行代码(相当于visual studio的F10)
s(step) 逐语句执行(F11)
c(continue)运行至下一个断点
断点
b(breakpoint) num 在第num行设置断点
b myfile.c:main 在main函数开始后第一行设置断点(必须是源代码的文件名)
info b 查看断点信息
d(delete)num 删除编号为num的断点(删除后在此次调试中该编号不会再被使用)
delete breakpoints 清除所有断点
disable/enable num 关闭/启用编号为num的断点
函数内
finish 跑完当前函数就停下来
until num 在函数内,跳转到num行,执行完指定区间的代码
查看/修改参数的值
p x 查看x的值
display x 常显示x的值
undisplay x 取消x值的常显示
set var x=100 直接修改x的值为100
特殊
bt 查看调用关系(压栈关系)
回车 会默认执行上一条指令
退出
q(quit)