Linux_gdb_makefile_coreDump
来源:互联网 发布:联通蜂窝移动数据设置 编辑:程序博客网 时间:2024/06/15 03:55
GDB:
gcc -g tst.c -o tst
gdb tst
break main
run
list(l) //查看程序
break(b) 函数名(行号,文件名:行号,行号 if 条件)
info break //查看所有设置的断点
delete 断点编号 //删除断点
run(r)
next(n) //不进入子函数
step(s) //进入子函数
continue(c)
print(p) 变量名 //查看指定变量值
finish //运行程序,直到当前函数结束
watch 变量名 //对指定变量进行监控
quit(q)
makefile
make在执行时所需的文件
列:
hello: main.o func1.o func2.o
gcc main.o func1.o func2.o -o hello
main.o: main.c
gcc -c main.c
func1.o:func1.c
gcc -c func1.c
func2.o:func2.c
gcc -c func2.c
.PHONY:clearn
clean:
rm -f hello main.o func1.o func2.o
targets(目标):prerequisites(依赖)
command(命令) //命令需要以【TAB】键开始
“.PHONY”申明伪目标(无依赖)
符号:
$^ 代表所有的依赖文件
$@ 代表目标
$< 代表第一个依赖文件
@ 取消回显
# 注释
make
make -f 文件名(默认寻找makefile文件)
coreDump
(核心转存):当程序在运行过程中发生异常,将出错时的内存内容储存在一个core文件中,这种过程叫Core Dump。
Segment fault(段错误)
产生原因:
数组访问越界
访问空指针
栈溢出
修改只读内存
CoreDump使能:
打开ulimit -c unlimited
关闭ulimit -c 0
core文件分析:
发生coreDump后,会产生一个core文件
用法:gdb 程序名 core文件名
例:gdb./test test.core