Linux下调试器 GDB和工程管理器MAKE 应用详解!
来源:互联网 发布:阿里高校数据 编辑:程序博客网 时间:2024/04/29 10:07
调试器 GDB
1.启动被调试程序
2.设置断点
3.查看断点处变量的值
调试选项 -g
gcc -g text.c -o text
gdb test //(gdb + 可执行文件) 作用 : 打开gdb调试工具
用到的指令解释:
run 运行程序 所有的命令都可以简写,只写第一个字母
list 显示代码 ?????????? 作业 :怎么通过list 查看代码????
1.启动被调试程序
2.设置断点
3.查看断点处变量的值
调试选项 -g
gcc -g text.c -o text
gdb test //(gdb + 可执行文件) 作用 : 打开gdb调试工具
用到的指令解释:
run 运行程序 所有的命令都可以简写,只写第一个字母
list 显示代码 ?????????? 作业 :怎么通过list 查看代码????
quit 退出
break + 行号 设置断点
run 停到断点处
next 一步步执行,不进入子函数
step 单步执行,进入子函数
print + 变量名 打印当前变量的值,
finish 运行完当前函数
continue 把剩下的程序执行完
删除断点
info break 查看断点信息,里面有段点的标号
delete 断点标号 删除该断点
设置断点可以加条件,满足条件才会设置断点
比如 break 21 if i = 15 //如果 i 等于15,则在21行设置断点
break 函数名
作业 ; GDB调试段错误
MAKE
工程概念 不同的C文件在不同的目录实现不同的功能
tree 可以树的方式查看当前目录的所有文件
make 批处理
工程管理器 实现 自动编译 在脚本文件时有提到过批处理
makefile 文件 帮助make编译项目源代码 如何编译的逻辑
makefile 的三元素
目标:依赖
命令
目标:依赖
命令
比如 文件夹下已有 hello.c 此文件
makefile 文件内容
hello:hell.o
gcc hello.o -o hello
hello.o:hello.c
gcc -c hello.c
.PHONY:clean //生成伪目标
clean:
rm -f hello.o hello
makefile 文件内容
hello:hell.o
gcc hello.o -o hello
hello.o:hello.c
gcc -c hello.c
.PHONY:clean //生成伪目标
clean:
rm -f hello.o hello
真目标会生成文件
伪目标只执行命令
make 命令 编译整个工程
伪目标只执行命令
make 命令 编译整个工程
make clean 会执行 rm -f hello.o hello 这条语句
make 目标题名 会把目标题名所在的那一行当作第一行执行
如果一个目录里有多个makefile文件
make -f makefile1 可指定某一个makefile文件
命令语句也变为 make -f makefile1 clean 形式
make -f makefile1 可指定某一个makefile文件
命令语句也变为 make -f makefile1 clean 形式
以功能目录存放源代码 .c文件
可以提高代码的可维护性
提高代码的可读性
提高代码的可读性
一个项目包括3种makefile文件
总控 makefile
功能目录 makefile
头文件 makefile [scripts]目录下
0 0
- Linux下调试器 GDB和工程管理器MAKE 应用详解!
- Linux下调试器 GDB和工程管理器MAKE 应用详解!
- Linux调试器gdb和工程管理器make
- GCC编译详解+Gdb调试器+Make工程管理器
- 工程管理器make和调试工具gdb
- Linux工程管理器和GDB调试器
- 调试器gdb;工程管理器 -make
- GDB调试器&Make工程管理器
- gdb调试器与make工程管理器
- make工程管理器及gdb调试器 基本知识
- 工程管理器与GDB调试器
- 【Linux】工程管理器Make
- Linux工程管理器make
- 【make工程管理器】linux下Make工程管理器简述_学习笔记_004
- gcc调试基础作用命令和工程管理器make
- linux之工程管理器Make
- Linux环境下的工程管理器—make
- Linux环境下的工程管理器—make(二)
- ViewPager滑动报错id冲突问题
- 文章标题 HDU 1157 : Who's in the Middle(水)
- UIListView 水果界面
- iOS开发者的Java学习笔记
- 二分查找和multiset用法
- Linux下调试器 GDB和工程管理器MAKE 应用详解!
- Android开发图片加载的二级缓存实现
- 为什么Java中1000==1000为false而100==100为true?
- 目录和文件操作(更新中)
- python中创建类属性
- GNU编译优化级别-O -O1 -O2 -O3
- Java最大的优势真的在于跨平台吗?
- Apache下配置https双向认证
- 新开博客第一篇