目录
1、gdb调试
1、什么是gdb
2、gdb相关指令
2、make、Makefile
3、git
1、gdb调试
1、什么是gdb
Linux中的调试器为gdb
如果一个程序是可调试的,该程序一定加入了一些debug信息。release版本的没有包含任何调试信息,也就是说release版本不能被调试。Linux中默认生成的可执行程序是release版本。
gdb? 可执行程序? ? ? ? ?进入调试,调试该可执行程序
-g? ? ? ? 生成的为debug版本
例如:gcc? test.c? -o? test? -g
注意:for循环内定义变量,是c99的标准,所以命令行后要带 -std=c99
2、gdb相关指令
run或简写为r? ? ? ? ? ?将代码跑起来
list或简写为l? ? ? ? ? ? 显示代码
l 1? ? ? ? ?从第一行开始显示代码(1只是举例),后续再 l,就是接着上面继续显示代码
b? 代码行号? ? ? ? ? ?在对应的位置打上断点
例如:b? 6? ? ? ? ? 在第六行处打断点
info? b? ? ? ? ? ? ? ? ?查看所打的断点
d? 断点编号? ? ?? ? ? ? ?删除断点
disable? 断点编号? ? ?禁用断点
step或简写为s? ? ? ? ?逐语句
next或简写为n? ? ?? ? 逐过程
display? 变量名? ? ? ? 监视该变量(变量常显示)
例如:display? &a? ? 监视a的地址
P或p? 变量名? ? ? ? ? ?监视该变量(只显示一次)
undisplay? 变量编号? ? ? 从监视中移除
finish? ? ? ? ? ? ? 结束当前函数
continue? ? ? ? ?直接运行到下个断点处
until? 行号? ? ? ?直接到达指定行? ? ? ??
例如:until? 10? ? ? ?直接运行至第十行
quit? ? ? ? 退出gdb调试
2、make、Makefile
make与Makefile是Linux中项目自动化构建工具
注意:1、make是一条指令,Makefile是一个文件
? ? ? ? ? 2、Makefile中存放的是文件的依赖关系与依赖方法
? ? ? ? ? 3、Makefile/makefile,首字母大小写都可以,根据个人习惯即可
?注意:make之后,Makefile从上往下扫描,执行第一个遇见的目标文件的依赖方法,生成该目标文件,后续的目标文件可以通过make后跟目标文件名来执行,例如make clean
Makefile文件中的特殊符号:
?Makefile有自动推导的过程:
?3、git
git? --version? ? ? ? ? ? ? 查看当前git版本号(确认是否安装git)
?yum? install? git? ? ? ? ? 安装git
gitee上新建仓库然后复制仓库的https地址:
git? clone??粘贴地址? ? ? ? ? ? ?克隆到本地仓库
git? add? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?添加到本地仓库
git? commit? ?-m? "日志信息”? ? ? ? ? 上传到本地仓库
git? push? ? ? ? ? ? ? ? ? ? ? ? ? ? ?推送到远端仓库
git? status? ? ? ? ? ? ? ? ? ? ? ? ? ?查看本地代码与本地仓库的对应关系
git? log? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?查看日志信息
|