BBS水木清华站∶精华区

发信人: TJB (老六), 信区: Linux 
标  题: GDB (8) Part Six 
发信站: BBS 水木调试站 (Wed Jun  3 08:49:54 1998) 
 
发信人: System_[email protected] (大家一起来发呆), 信区: Linux 
标  题: gdb(八) 
发信站: 中国科大BBS站 (Sat May  2 01:56:05 1998) 
转信站: SwordHouse!linux.ustc.edu.cn!ustcnews!ustcbbs 
 
断点命令列表 
================== 
   你可以为任一个断点或观察点指定一系列命令,当你程序执行到断点时,GDB自动执行 
这些命令。例如:你可以打印一些表达式的值,或使能其他的断点。 
 
`commands [BNUM]' 
`... COMMAND-LIST ...' 
`end' 
     为断点号为BNUM的断点设置一个命令列表。这些命令在'...COMMAND-LIST...'中列 
出使用'end'命令来表示列表的结束。 
    要删除断点上设置的命令序列,你只需在'command'命令后直接跟'end'命令就可以 
了。 
    当不指定BNUM时,GDB缺省为最近遇到的断点或是观察点设置命令列表。 
    使用回车来表示重复使用命令的特性在'...command list...'中不能使用。 
    你可以使用命令列表中的命令来再次使你的程序进入运行状态。简单的在命令列表 
中使用'continue'命令,或'step'命令。 
    在使程序恢复执行的命令后的命令都被忽略。这是因为一旦你的程序重新运行就可 
能遇到新的命令列表,那么就应该执行新的命令。防止了二义。 
    如果你在命令列表中使用了'silent'命令,那么你程序在断点处停止的信息将不被 
显示。这对于用一个断点然后显示一些信息,接着再继续执行很有用。但'silent'命令 
只有在命令列表的开头有效。 
    命令'echo','output'和'printf'允许你精确的控制显示信息,这些命令在"silent" 
断点中很有用。 
   例如:这个例子演示了使用断点命令列表来打印'x'的值. 
 
     break foo if x>0 
     commands 
     silent 
     printf "x is %d\n",x 
     cont 
     end 
   断点命令列表的一个应用是在遇到一个buf之后改正数据然后继续调试的过程。 
使用命令来修改含有错误值的变量,然后使用'continue'命令继续程序的运行。 
  使用'silent'命令屏蔽输出: 
 
     break 403 
     commands 
     silent 
     set x = y + 4 
     cont 
     end 
 
-- 
※ 来源: 中国科大BBS站 [bbs.ustc.edu.cn] 
                                按任何键继续 .. 
 
-- 
※ 来源:·BBS 水木调试站 Leeward.lib.tsinghua.edu.cn·[FROM: 202.200.37.100] 

BBS水木清华站∶精华区