#gdb常用代码汇总:
 (整理的有点乱,勿喷)
 gdb调试:如果需要使用gdb调试程序,请在gcc时加上-g选项
 1)进入GDB  #gdb test
   test是要调试的程序,由gcc test.c -g -o test生成。进入后提示符变为(gdb) 。
 2)查看源码  (gdb) l
   源码会进行行号提示。
   如果需要查看在其他文件中定义的函数,在l后加上函数名即可定位到这个函数的定义及查看附近的其他源码。或者:使用断点或单步运行,到某个函数处使用s进入这个函数。
 3)设置断点  (gdb) b 6
   这样会在运行到源码第6行时停止,可以查看变量的值、堆栈情况等;这个行号是gdb的行号。
  4)查看断点处情况  (gdb) info b
   可以键入"info b"来查看断点处情况,可以设置多个断点;
 5)运行代码  (gdb) r
 6)显示变量值  (gdb) p n
   在程序暂停时,键入"p 变量名"(print)即可;
   GDB在显示变量值时都会在对应值之前加上"N",而无需写冗长的变量名;
 7)观察变量  (gdb) watch n
  在某一循环处,往往希望能够观察一个变量的变化情况,这时就可以键入命令"watch"来观察变量的变化情况,GDB在"n"设置了观察点;
 8)单步运行  (gdb) n
 9)程序继续运行  (gdb) c
   使程序继续往下运行,直到再次遇到断点或程序结束;
 10)退出GDB  (gdb) q
 11)修改变量的值 set var
 12) set args 可指定运行时参数。(如:set args 10 20 30 40 50)
 13)clear + 要清除的断点行号 clear 10 用于清除对应行的断点,要给出断点的行号,清除时GDB会给出提示.
 调试命令 (缩写) 作用
 (gdb) break (b) 在源代码指定的某一行设置断点,其中xxx用于指定具体打断点位置
 (gdb) run (r) 执行被调试的程序,其会自动在第一个断点处暂停执行。
 (gdb) continue (c) 当程序在某一断点处停止后,用该指令可以继续执行,直至遇到断点或者程序结束。
 (gdb) next (n) 令程序一行代码一行代码的执行。
 (gdb) step(s) 如果有调用函数,进入调用的函数内部;否则,和 next 命令的功能一样。
 (gdb) until (u)
 (gdb) until (u) location 当你厌倦了在一个循环体内单步跟踪时,单纯使用 until 命令,可以运行程序直到退出循环体。
 until n 命令中,n 为某一行代码的行号,该命令会使程序运行至第 n 行代码处停止。
 (gdb) print (p) 打印指定变量的值,其中 xxx 指的就是某一变量名。
 (gdb) list (l) 显示源程序代码的内容,包括各行代码所在的行号。
 (gdb) finish(fi) 结束当前正在执行的函数,并在跳出函数后暂停程序的执行。
 (gdb) jump(j) 使程序从当前要执行的代码处,直接跳转到指定位置处继续执行后续的代码。
 (gdb) quit (q) 终止调试。