gdb中设置断点

来源:互联网 发布:淘宝联盟社区首页 编辑:程序博客网 时间:2024/05/16 19:36

设置断点 

============= 

   使用'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将设置“陷井”。注意: 

你只能一次使用一个断点,在新设置断点时,先删除原断点。 

 

 

`thbreak ARGS' 

     设置只有一次作用的硬件支持断点。ARGS用法同'hbreak'命令。这个命令 

和'tbreak'命令相似,它所设置的断点只起一次作用,然后就被自动的删除。这 

个命令所设置的断点需要有硬件支持。

原创粉丝点击