GarfieldEr007的专栏

勤奋治学 深度思考 静心钻研 先苦后甜

用GDB调试程序(七)

改变程序的执行 ———————     一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。         一、修改变...

2015-11-24 09:56:32

阅读数 735

评论数 0

用GDB调试程序(六)

七、设置显示选项     GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。     set print address     set print address on         打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,如:     ...

2015-11-24 09:56:15

阅读数 414

评论数 0

用GDB调试程序(五)

查看运行时数据 ———————         在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是:         print     print /         是表达式,是你所调试的...

2015-11-24 09:55:57

阅读数 396

评论数 0

用GDB调试程序(四)

查看栈信息 ————— 当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。 下面是一些查看函数调用栈信息的GDB命令:     backtrace...

2015-11-24 09:55:45

阅读数 324

评论数 0

用GDB调试程序(三)

四、维护停止点 上面说了如何设置程序的停止点,GDB中的停止点也就是上述的三类。在GDB中,如果你觉得已定义好的停止点没有用了,你可以使用delete、clear、disable、enable这几个命令来进行维护。     clear         清除所有的已定义的停止点。     clear...

2015-11-24 09:55:20

阅读数 378

评论数 0

用GDB调试程序(二)

GDB的命令概貌 ——————— 启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示:     /home/hchen> gdb     GNU gdb 5.1.1     Copyright 2002 Free...

2015-11-24 09:55:06

阅读数 413

评论数 0

用GDB调试程序(一)

用GDB调试程序 GDB概述 ———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所...

2015-11-24 09:54:40

阅读数 398

评论数 0

跟我一起写 Makefile(十四)

使用make更新函数库文件 ——————————— 函数库文件也就是对Object文件(程序编译的中间文件)的打包文件。在Unix下,一般是由命令"ar"来完成打包工作。 一、函数库文件的成员 一个函数库文件由多个文件组成。你可以以如下格式指定函数库文件及其组成:     ar...

2015-11-24 09:53:58

阅读数 377

评论数 0

跟我一起写 Makefile(十三)

五、定义模式规则 你可以使用模式规则来定义一个隐含规则。一个模式规则就好像一个一般的规则,只是在规则中,目标的定义需要有"%"字符。"%"的意思是表示一个或多个任意字符。在依赖目标中同样可以使用"%",只是依赖目标中的"%&qu...

2015-11-24 09:53:50

阅读数 331

评论数 0

跟我一起写 Makefile(十二)

隐含规则 ———— 在我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix下是[.o]文件,Windows下是[.obj]文件)。本章讲述的就是一些在Makefile中的“隐含的”,早先约定了的,不需要我们再写出来...

2015-11-23 12:46:50

阅读数 294

评论数 0

跟我一起写 Makefile(十一)

make 的运行 —————— 一般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切都是自动的。但也有时你也许只想让make重编译某些文件,而不是整个工程,而又有的时候你有几套编译规则,你想在不同的时候使用不同的编译规则,等等。本章节就是...

2015-11-23 12:46:02

阅读数 344

评论数 0

跟我一起写 Makefile(十)

四、foreach 函数   foreach函数和别的函数非常的不一样。因为这个函数是用来做循环用的,Makefile中的foreach函数几乎是仿照于Unix标准Shell(/bin/sh)中的for语句,或是C-Shell(/bin/csh)中的foreach语句而构建的。它的语法是: ...

2015-11-23 12:45:07

阅读数 355

评论数 0

跟我一起写 Makefile(九)

使用函数 ———— 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。 一、函数的调用语法 函数调用,很像变量的使用,也是以“$”来标识的,其语...

2015-11-23 12:44:25

阅读数 332

评论数 0

跟我一起写 Makefile(八)

六、多行变量   还有一种设置变量值的方法是使用define关键字。使用define关键字设置变量的值可以有换行,这有利于定义一系列的命令(前面我们讲过“命令包”的技术就是利用这个关键字)。 define指示符后面跟的是变量的名字,而重起一行定义变量的值,定义是以endef关键字结束。其工作...

2015-11-23 12:43:45

阅读数 346

评论数 0

跟我一起写 Makefile(七)

使用变量 ———— 在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候其会自动原模原样地展开在所使用的地方。其与C/C++所不同的是,你可以在Makefile中改变其值。在Makefile中,变量可以使用在“目标”,“依赖目标...

2015-11-23 12:42:38

阅读数 320

评论数 0

跟我一起写 Makefile(六)

书写命令 ———— 每条规则中的命令和操作系统Shell的命令行是一致的。make会一按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略,但是如果该空格或空行是以Tab键开头的,那么make会认为其是一...

2015-11-23 12:41:57

阅读数 408

评论数 0

跟我一起写 Makefile(五)

六、多目标 Makefile的规则中的目标可以不止一个,其支持多目标,有可能我们的多个目标同时依赖于一个文件,并且其生成的命令大体类似。于是我们就能把其合并起来。当然,多个目标的生成规则的执行命令是同一个,这可能会可我们带来麻烦,不过好在我们的可以使用一个自动化变量“$@”(关于自动化变量,将在...

2015-11-23 12:41:15

阅读数 405

评论数 0

跟我一起写 Makefile(四)

书写规则 ———— 规则包含两个部分,一个是依赖关系,一个是生成目标的方法。 在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么。一般来说,定义在Makefile中的目标可...

2015-11-23 12:40:07

阅读数 402

评论数 0

跟我一起写 Makefile(三)

Makefile 总述 ——————— 一、Makefile里有什么? Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。 1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生...

2015-11-23 12:39:12

阅读数 393

评论数 0

跟我一起写 Makefile(二)

跟我一起写 Makefile  陈皓 概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的...

2015-11-23 12:37:50

阅读数 480

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭