Linux C第二课

来源:互联网 发布:在哪里注册开淘宝店 编辑:程序博客网 时间:2024/05/22 12:22

gdb 调试器
一、gdb 调试器的三大功能
- 启动被调试程序
- 在执行可执行文件时可以打断
- 检查程序的中断值
二、gdb的使用
gcc -g demo.c -o demo
gdb demo
(gdb) run //用来显示程序的运行结果
(gdb) list //显示程序及行号
(gdb) break 20 //在某一行设置断点
(gdb) break 20 if i = 10 //当 i =10的时候,在20 行设置断点
(gdb) break add _sum(函数名) //在调用到函数add_sum 时候设置断点
(gdb) next //单步执行,但不进入子函数
(gdb) step //单步执行,可以进入子函数
(gdb) finish //运行设置了断点的函数
(gdb) print i/sum //显示i或sum的值,中间变量
(gdb) info break //显示断点的信息
(gdb) delete break //删除断点
(gdb) quit //退出gdb编译器

段错误的解决方法(怎么找到段错误)
一、在程序中的每一行语句后加一句printf();
二、使用(gdb) run 停在哪一行就是哪一行出现了段错误
三、加载debug.h
gcc demo.c -D__dubug__ //编译产生测试版
gcc demo.c //编译产生发行版

meke 工程管理器
* gcc *.c //编译当前目录下的所有.c文件
* make //可以编译不同目录下的所有.c文件
* makefile 属于脚本文件 写脚本语言 实现批处理
* shell、Python等都是脚本语言用来测试
* make的自动编译功能
-自动执行makefile里面的命令
-自动检查文件是否被更改,检查时间戳
* make 后顺序执行makefile里面的语句,但是显示效果是从上往下
* 为什么将.c文件编译成.o文件而不是直接生成可执行文件
make,第一次编译时,所有的.c文件编译生成对应的.o文件。此后,如果有.c文 件被修改,再次make时只编译修改过的.c文件,从而加快了编译速度
* 编写Makefile文件时有真目标和伪目标
-真目标:*.o main 会真正生成的文件
-伪目标: .PHONY :clean
* Makefile的命令格式
目标文件 : 依赖文件
(tab)命令行
* Makefile命名 可以用Makefile1等等 make -f Makefile1
* tree //以树状形式显示一个目录及其所有子目录
* Makefile的分类
-顶层Makefile,即总控Makefile
功能:进入各个功能子目录执行make命令
将所有的.o文件链接生成最终可执行文件
-功能子目录Makefile
功能: 将每个功能子目录下的src目录的.c文件编译生成对应的.o文件
-Scripts目录中的Makefile
功能:定义了许多变量名供总控Makefile和功能子目录Makefile使用
* Makefile中用 # 注释
* Linux中 终端上输入命令行 echo hello 按回车后 终端中显示 hello
echo的功能相当于.c文件中的printf

0 0