1、gdb命令
(1)查找程序源代码:
1)search forward:用来从当前行向前查找第一个匹配的字符串
2)reverse_search:用来从当前行向前查找第一个匹配的字符串
3)list+行号:显示指定行前后的代码
4)list+函数名:显示函数代码
5)list +:从当前行往后显示代码
6)list -:从当前行往前显示代码
7)list 行号1,行号2:显示行号1对应行与行号2对应行之间的代码
8)list ,行号2:显示当前行到行号2对应行之间的代码
(2)删除断点:
1)clear:删除程序中所有的断点
2)clear+行号:删除该行中的断点
3)clear+函数名:删除该函数的断点
(3)查看和设置变量值:
1)print 变量或表达式
2)print 变量=值:对变量赋值
3)print 表达式@要打印值的个数n:打印以表达式值开始n个数
4)whatis 变量或表达式:显示某变量或表达式的数据类型
5)set variable 变量=值:对变量赋值
(4)自动显示变量值:
1)display <expr>:设置要自动显示值的变量
2)display /<fmt> <expr>:设置要自动显示的变量及数据的显示格式
3)undisplay display <dnum>:删除一个自动显示变量
4)delete display <dnum>:删除一个自动显示变量
5)undisplay/delete display <dnum1~dnum5>:删除一个范围内的自动变量
2、makefile的构成
makefile包括:显式规则、隐晦规则、变量定义、文件指示和凝视。
(1)显式规则。显式规则说明怎样生成一个或多个的目标文件。这是由makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。
(2)隐晦规则。由于make有自己主动推导的功能,所以隐晦的规则能够让我们比较粗糙、简略地书写makefile,这是由make所支持的。
(3)变量的定义。在makefile中我们要定义一系列的变量,变量一般都是字符串,类C语言中的宏,当makefile被运行时,当中的变量都会被扩展到对应的引用位置上。
(4)文件指示。包括三部分,一个是在一个makefile中引用另一个makefile,就像C语言中的include一样;另一个是指依据某些情况指定makefile中的有效部分,就像C语言中的预编译#if一样;还有就是定义一个多行的命令。
(5)凝视。makefile中凝视是用“#”字符,就像C/C++中的“//”一样。假设你要在你的makefile中使用“#”字符,能够用反斜框进行转义,如:“/#”。
(6)最后需注意,在makefile中的命令,必须要以tab键开始。
3、makefile变量
(1)$@:指目标文件
(2)$^:指所有依赖文件
(3)$<:指第一个依赖文件
4、makefile通配符的使用
(1)%:匹配零或若干字符。
例:%.h:表示所有以.h结尾的文件
(2)*:是shell支持的通配符,是在shell语法层次上的。
例:*.c:一般用在shell命令里面
(3)@:通常makefile会将其执行的命令行在执行前输出到屏幕上。如果将@添加到命令行前,这个命令将不被make回显出来。
(4)-:通常删除、创建文件,如果碰到文件不存在或者已经创建,那么希望忽略掉这个错误,继续执行,就可在命令前添加-。
(5)$:主要扩展打开makefile中定义的变量。
(6)$$:主要扩展打开makefile中定义的shell变量。