一、gdb应用。
1、列出源程序。
@命令为“list”or "l".
如: "list"   
              "list 10"显示第10行的内容。
              “list 2 ,6”:显示2 到6 行内容。
2、运行程序的命令。
(gdb)run <arg1 arg2....>
 (gdb)show args :查看上一次用的参数。Set args <arg1 arg2> 重新设置参数。
3、操作断点的命令。
   @设置断点。(最好和listg一起用)
      (1)在源程序中的行设置断点:Break <line-number>如:break 6
      (2)在指定的前设置断点。Break <function-name>如:break printstar 
      (3)使用表达式设置断点:break <line number> if <conditional expression>
           如:beak 12 if i==9 (当i等于9时启动12行的断点)
               如果有一个1号断点已经设置了,想再设置条件,可以这样来:
                如:condition 1 if i==10
          想查看断点的信息可以 用“info break”
       (4)在指定全程的入口设置断点。
              如 break temp.c:10  在源文件中的第10行停。
              如 break temp.c:main  调用main()函数前设置断点。
  @删除指定的断点。Delete breakpoint <point-number>
Delete breakpoint 1 (删除1号的断点)
  @禁止或启用断点。
     Enable breakpoint <断点号>  
     disable breakpoint <断点号>  
  @i清除断点。
     Clear :功能为删除上次停止处的断点。
     Clear 10 (删除第10行的全部断点)
  @观察点。 Watch <condition>  
Condition 是触发观察点的条件。一量触发导致gdb中断。
4、查看运行时数据。
   @print a 或者 p a.
     P  'f2.c'::x  (f2.c中的全局变量x的值)
 P  'f2.c'::sum::x (f2.c中的sum函数的局部变量x的值)
    @对程序中函数的调用 。
       Print func(arg1,arg2.....)
@查看表达式的值。
   Print <expression>
   如:print a-b
@查看数组的值。
  Print <array-name>
@
5、改变程序的执行。   
@修改变量的值。
  Print <expr>
  或者
  Set <expr>
@跳转执行。
  Jump <location>  
@信号的产生及处理。
  Singal <signum>  signum的值通常从1到15运行。
  Handle <sig-name> <可选参数>这是为控制信号的处理。
 如 handle SIGPIPE stop print
@强制高手函数。
  Call func(arg1,arg2...)
 用法与print的区别是如果函数返回void ,call 不显示,而print则显示函数返回值,并                     
 把该存入数据中。
@强制函数返回。
  Return 54123
6、gdb高级应用。
@产生corer 文件,因为当运行错误时都会产生一个的文件,特别是在gdb中运行,gdb 
  外运行,开启这个功能的命令是:ulimit -c unlimited
@跟踪栈上数据。
      打印些栈时的命令是:backtrace
        Frame 1 :查看1号frame下。
        然后再用info locals..
@绑定运行进程。
首先:运行一个程序。然后再绑定一个进程。如:gdb text8 11 。还可以 这样来进,不 
      是在gdb中进的(gdb)attach 11
      离开进程的命令:(gdb)detach
@源文件搜索。
  Search regexp 
  Reverse-search regexp
  Print $_
@机器语言工具。
@其他有用的调试命令。
   Pwd  cd quit shell 【commandline】
   Show language:查看当前的语言环境。
   Info frame:查看当前函数的程序语言。
   Info source :查看当前文件的程序语言。