发信人: 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]
本文转自中文Linux论坛