BBS水木清华站∶精华区

发信人: TJB (老六), 信区: Linux
标  题: GDB (8) Part One
发信站: BBS 水木调试站 (Wed Jun  3 08:44:07 1998)

发信人: System_Killer@bbs.ustc.edu.cn (大家一起来发呆), 信区: 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水木清华站∶精华区

本文转自中文Linux论坛