BBS水木清华站∶精华区

发信人: TJB (老六), 信区: Linux 
标  题: GDB (8) Part One 
发信站: BBS 水木调试站 (Wed Jun  3 08:44:07 1998) 
 
发信人: System_[email protected] (大家一起来发呆), 信区: Linux 
标  题: gdb(八) 
发信站: 中国科大BBS站 (Fri Apr 10 17:22:53 1998) 
转信站: SwordHouse!linux.ustc.edu.cn!ustcnews!ustcbbs 
 
设置断点 
============= 
   使用'break'或简写成'b'来设置断点。gdb使用环境变量$bpnum来记录你最新设置的 
断点。 
   你有不少方法来设置断点。 
 
 
`break FUNCTION' 
     此命令用来在某个函数上设置断点。当你使用允许函数重载的语言比如C++时,有可 
能同时在几个重载的函数上设置了断点。 
 
`break +OFFSET' 
`break -OFFSET' 
     在当前程序运行到的前几行或后几行设置断点。OFFSET为行号。 
 
`break LINENUM' 
     在行号为LINENUM的行上设置断点。程序在运行到此行之前停止。 
 
`break FILENAME:LINENUM' 
     在文件名为FILENAME的原文件的第LINENUM行设置断点。 
 
`break FILENAME:FUNCTION' 
     在文件名为FILENAME的原文件的名为FUNCTION的函数上设置断点。 
当你的多个文件中可能含有相同的函数名时必须给出文件名。 
 
`break *ADDRESS' 
     在地址ADDRESS上设置断点,这个命令允许你在没有调试信息的程 
序中设置断点。 
`break' 
     当'break'命令不包含任何参数时,'break'命令在当前执行到的程 
序运行栈中的下一条指令上设置一个断点。除了栈底以外,这个命令使 
程序在一旦从当前函数返回时停止。相似的命令是'finish',但'finish' 
并不设置断点。这一点在循环语句中很有用。 
     gdb在恢复执行时,至少执行一条指令。 
 
`break ... if COND' 
     这个命令设置一个条件断点,条件由COND指定;在gdb每次执行到此 
断点时COND都被计算当COND的值为非零时,程序在断点处停止。这意味着 
COND的值为真时程序停止。...可以为下面所说的一些参量。 
 
`tbreak ARGS' 
     设置断点为只有效一次。ARGS的使用同'break'中的参量的使用。 
 
`hbreak ARGS' 
     设置一个由硬件支持的断点。ARGS同'break'命令,设置方法也和 
'break'相同。但这种断点需要由硬件支持,所以不是所有的系统上这个 
命令都有效。这个命令的主要目的是用于对EPROM/ROM程序的调试。因为 
这条命令可以在不改变代码的情况下设置断点。这可以同SPARCLite DSU 
一起使用。当程序访问某些变量和代码时,DSU将设置“陷井”。注意: 
你只能一次使用一个断点,在新设置断点时,先删除原断点。 
 
-- 
※ 来源: 中国科大BBS站 [bbs.ustc.edu.cn] 
 
-- 
※ 来源:·BBS 水木调试站 Leeward.lib.tsinghua.edu.cn·[FROM: 202.200.37.100] 

BBS水木清华站∶精华区