GDB 主要做的四件事:
    1>设置运行环境和参数运行指定程序
    2>让程序在指定的条件下停止
    3>当程序停止时检查发生了什么
    4>改变成在调试程序,这样可以试着在线修正某bug引起问题,然后继续查找另个bug.

% GDB在启动时,参数-quiet或-q,即命令gdb -q,可以在安静模式下启动,这样,启动时不会显示那些像广告似的说明。
%GDB在启动时,参数-nx或-n 指定不执行任何初始化文件中命令(一般为.gdbinit)。
%GDB在启动时,参数-batch 批处模式,当在命令文件中所有命令被成功执行后,GDB返回状态“0”,如果出错,返回非零值。
%GDB在启动时,参数-cd DIRECTORY 把DIRECTORY作为GDB工作目录,而非当前目录(缺省);
%命令help,不加任何参数。
%help+命令列表 得到命令列表中的帮助。
% set 为程序设置运行环境
% show version 显示GDB版本
% show copying 显示版权信息
% show warranty 显示警告信息
% show paths 显示当前路径变量设置情况。
% set environment VARNAME VALUE设置某环境变量的值。
% unset environment VARNAME 删除某环境变量的值。
%run >outfile 运行程序并把程序标准输出写入文件outfile中。
% tty /dev/ttyb  指定以后用run 命令启动的进程使用终端/dev/ttyb作为程序的输入/输出,而且把这个终端设置为进程的控制终端。 只对当前调试程序有效。
% attach PROCESS-ID 把已经运行的进程(在GDB外启动)连接入GDB以便调试。  PROCESS-ID为进程号
%kill 结束子进程
%info program 显示当前程序运行的状态信息。
% break FUNCTION 在某个函数上设置断点。
% break +OFFSET或 -OFFSET 在当前程序运行到的前几行或后几行设置断点。OFFSET为行号。
% break LINENUM 在行号为LINENUM行上设置断点。程序在此行前停止运行。
% break FILENAME:LINENUM  在文件名为FILENAME的原文件的第LINENUM行设置断点
% break FILENAME:FUNCTION  在文件FILENAME的FUNCTION函数上设置断点。
% break *ADDRESS 在地址ADDRESS 上设置断点。
% break 没有参数时,在当前执行到程序运行杙中的下一条指令上设置断点。
% break ... if CON 设置一个条件断点,条件由COND指定。当COND值为非零时,程序在断点处停止。
% tbreak ARGS 设置断点只有一次有效。
% hbreak ARGS 设置一个由硬件支持的断点。
% thbreak ARGS 设置只有一次作用的硬件支持断点。
% rbreak REGEX 在所有满足表达示REGEX的函数上设置断点。

% 显示所有断点和观察点:
    info breakpoints 或 info break 或 info watchpoints
% watch EXPR  使用EXPR作为表达式设置一个观察点。当表达式值被改变时GDB使程序停止。
% rwatch EXPR 设置一观察点,当EXPR被程序读时,程序被暂停。
% awatch 设置一观察点,当EXPR被读出然后被写入时程序被暂停。
% catch EXCEPTIONS 在一个被激活的异常处理句柄中设置断点。
% clear 在当前选择的杙帧上清除下一个所要执行到的断点。
% clear FUNCTION 或 clear FILENAME:FUNCTION 删除名为FUNCTION的函数上断点
% clear LINENUM 或 clear FILENAME:LINENUM 删除以LINENUM为行号上的断点
% delete 删除参数所指定断点,如果没有参数则删除程序中所有断点。
% info break 或 info watch 查看哪些断点是活跃的。
% 断点或观察点四种状态:
    1,激活
    2,不激活
    3,激活一次变为不激活。
    4,激活一次自动删除。
% enable  激活出参数指定的断点或全部断点(没有参数时)。
% enable once BNUMS 使BNUMS断点只激活一次。
% enable delete BNUMS ... 激活一次,然后自动删除。
% condition BNUM EXPRESSION 把EXPRESSION 作为断点条件,断点用BUN指定。只有在条件为真时程序才被暂停。
% condition BUN 删除在BNUM号断点处的条件,使成为一普通断点。
% ignore BNUM CONUT 设置第BNUM号断点的ignore参数为COUNT.
% 为任一个断点指定一系列命令,当程序执行到断点时,GDB自动执行这些命令。
    commands
    ... COMMAND-LIST...
    end
EXAMPLE:
    break foo if x>0
    commands
    printf "x is %d\n",x
    cont
    end


cont使程序继续。。
                            5.10.2010 夜