gdb调试常命令,进程的调试di
gdb调试是一名linux开发工程师必不可少的,下面给大家分析一下gdb的使用。
第一:在编译生成链接生成可执行文件记得加入-g选项
gcc -g gdbtest.c -o test
第二:使用gdb调试的时候,gdb只能跟踪一个进程。可以在fork函数调用之前,通过指令设置gdb调试工具跟踪父进程或者是跟踪子进程。默认跟踪父进程。
set follow-fork-mode child 命令设置gdb在fork之后跟踪子进程。
set follow-fork-mode parent 设置跟踪父进程。
注意,一定要在fork函数调用之前设置才有效。(可以通过在fork函数处设置断点,然后run,然后set follow-fork-mode child选择跟踪子进程。
第三:常用命令
start #开始调试,停在第一行代码处,(gdb)start
braek #,设置断点。(gdb) break 10
clear #,删除指定编号的某个断点,或删除所有断点。断点编号从1开始递增。
s #s: step执行一行源程序代码,如果此行代码中有函数调用,则进入该函数;(gdb)
n #n: next执行一行源程序代码,此行代码中的函数调用也一并执行。(gdb) n
r #Run的简写,运行被调试的程序。如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。(gdb) r
c #Continue的简写,继续执行被调试程序,直至下一个断点或程序结束。(gdb) c
finish #函数结束
p [var] #Print的简写,显示指定变量(临时变量或全局变量 例如 int a)的值。(gdb) p a
display [var] #display,设置想要跟踪的变量(例如 int a)。(gdb) display a
undisplay [varnum] #undisplay取消对变量的跟踪,被跟踪变量用整型数标识。(gdb)
set args #可指定运行时参数。(gdb)set args 10 20
show args #查看运行时参数。
q #Quit的简写,退出GDB调试环境。(gdb) q
help [cmd] #GDB帮助命令,提供对GDB名种命令的解释说明。如果指定了“命令名称”参数,则显示该命令的详细说明;如果没有指定参数,则分类显示所有GDB命令,供用户进一步浏览和查询。(gdb)help
回车或者按向上键 #重复前面的命令,(gdb)回车