gcc -g text.c -o text
gdb text
命令参数
list(l) 查看程序
break(b) 行号:在指定行添加断点
break(b) 行号 if 条件 当条件为真时,指定行号处断点生效,例b 5 if i=10,当i等于10时第5行断点生效
info break 查看所有设置的断点
delete 断点编号 删除断点
run(r) 开始运行程序
next(n) 单步运行程序(不进入函数)
step(s) 单步运行程序(进入函数)
continue(c) 继续运行程序
print(p) 变量名 查看指定变量值
finish 运行程序,直到当前函数结束
watch 变量名 对指定变量进行监控
quit(q) 退出gdb
start 进入程序第一行
set 设定变量值
clear 删除断点(按行,函数名删除)
enable 断点激活
disable 断点失效
二.工程管理器make1.概念
通过读入Makefile文件文件的内容来执行大量的编译工。
2.makefile
makefile是make读入的默认配置文件。
编写规则:
a.需要由make工具创建的目标体(target),通常是目标文件或可执行文件;
b.要创建的目标体所依赖的文件;创建每个目标体时需要运行的命令1(command)。
这一行必须以制表符(tab键)开头.
一个Makefile里面有多个目标,但是只能用一个终极目标,且在第一个目标。执行时只能从下往上,和书写顺序相反。有需求目的时,需求写在前,被需求写在后面。
make命令默认在当前目录下寻找名字为makefile或者Makefile的工程文件,如果同时有Makefile和makefile默认为makefile.
当名字不为这两者之一时,可以使用如下方法指定:make –f 文件名.
3.伪目标
Makefile中把那些没有任何依赖只有执行动作的目标称为“伪目标”(phonytargets)。
.PHONY : clean (.PHONY 声明伪目标 clean)
clean :
rm –f hello main.o func1.o func2.o
4.使用变量
$(变量名)
例:
hello: main.o func1.o func2.o func3.o
gcc main.o func1.o func2.o func3.o -o hello
使用变量后
obj=main.o func1.o func2.o func3.o
hello: $(obj)
gcc $(obj) -o hello
在makefile中,存在系统默认的自动化变量
$^:代表所有的依赖文件
$@:代表目标
$<:代表第一个依赖文件
例:
hello: main.o func1.o func2.o
gcc main.o func1.o func2.o -o hello
=》
hello: main.o func1.o func2.o
gcc $^ -o $@
补充
函数返回:值的返回和流程返回
goto语句:多层循环嵌套才使用
main函数只能由系统内核调用 C语言没有子函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)