b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

gdb 条件断点_gdb break_windows 调试工具

电脑杂谈  发布时间:2017-04-10 23:05:23  来源:网络整理

分类:编程语言

GDB(GNU Debugger)是GCC的调试工具。其功能强大,现描述如下:

GDB主要帮忙你完成下面四个方面的功能:

1.启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。

2.可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)

3.当程序被停住时,可以检查此时你的程序中所发生的事。

4.动态的改变你程序的执行环境。

一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如:

gcc -g hello.c -o hello
g++ -g hello.cpp -o hello

如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。当你用-g把调试信息加入之后,并成功编译目标代码以后,让我们来看看如何用gdb来调试他。

program 也就是你的执行文件,一般在当前目录下。

用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件。

如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。

set args 可指定运行时参数。(如:set args 10 20 30 40 50 )

show args 命令可以查看设置好的运行参数。

run (r) 启动程序

不指定运行参数 r

指定运行参数r 10 20 30 40 50

cd 相当于shell的cd命令。

pwd 显示当前的所在目录。

info terminal显示你程序用到的终端的模式。

使用重定向控制程序输出。如:run > outfile

tty命令可以设置输入输出使用的终端设备。如:tty /dev/tty1

break 设置断点,可以简写为b

b 10设置断点,在源程序第10行

b func设置断点,在func函数入口处

在进入指定函数时停住:

C++中可以使用

class::function或function(type,type)格式来指定函数名。如果有名称空间,可以使用namespace::class::function或者function(type,type)格式来指定函数名。

break filename:linenum

在源文件filename的linenum行处停住

break filename:function

在源文件filename的function函数的入口处停住

break class::function或function(type,type)

在类class的function函数的入口处停住

break namespace::class::function

在名称空间为namespace的类class的function函数的入口处停住

info b

watch 为表达式(变量)expr设置一个观察点。当表达式值有变化时,马上停住程序。

rwatch表达式(变量)expr被读时,停住程序。

awatch 表达式(变量)的值被读或被写时,停住程序。

info watchpoints列出当前所设置了的所有观察点。

一般来说,为断点设置一个条件,我们使用if关键词,后面跟其断点条件。并且,条件设置好后,我们可以用condition命令来修改断点的条件。并且,条件设置好后,我们可以用condition命令来修改断点的条件。(只有break 和 watch命令支持if,catch目前暂不支持if)。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-40594-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...