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

0 0
原创粉丝点击