GDB之coredump的学习
来源:互联网 发布:影视cms系统 编辑:程序博客网 时间:2024/05/18 19:23
在Linux环境下运行程序的时候有的时候会出现一些问题,这个时候就可以使用GDB工具进行调试,以下是公司实习期间学习GDB的一些总结。
1、GDB的简介
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。
一般来说,GDB主要完成以下四个方面的功能:
(1)启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
(2)可让被调试的程序在你所指定的调试的断点处挺住。
(3)当程序被停住时,可以检查此时你的程序中所发生的事。
(4)动态的改变你程序的执行环境。
2、GDB的常用命令
(1)bt,查看栈调用信息;bt full查看详细栈调用信息。
(2)frame n ,跳转到指定的栈n
(3)up/down,栈调用上/下移一个函数调用
(4)print,打印命令,简写p
print var :打印变量的值
print &var ;打印变量的地址
print *address :打印地址的数据值
(5)list ,简写l,列出源码信息
(6)info args ,查看函数参数信息
(7)info locals ,查看函数中局部变量的信息
(8)info register ,查看cpu寄存器的信息
3、coredump的介绍
通常情况下coredump包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。可以理解为把程序工作的当前状态存储成一个文件(core文件)。
设置core文件大小非0,两种方式
1. ulimit –csize
2. 调用setrlimit()在代码中设置
设置corepattern
echo /nfs/coredump/core-%e-%p-%s-%t> /proc/sys/kernel/core_pattern
以下是参数列表:
%p- pid
%u - 当前uid
%g - 当前gid
%s - 导致产生core的信号
%t -core文件生成时的unix时间
%h - 主机名
%e - 可执行文件名
4、如果系统中没有安装GDB或者不能生成coredump,可以通过在代码中添加如下代码产生coredump:
#include <sys/time.h>#include <sys/resource.h>struct rlimit rlim;rlim.rlim_cur =RLIM_INFINITY;rlim.rlim_max=RLIM_INFINITY;setrlimit(RLIMIT_CORE,&rlim);
- GDB之coredump的学习
- GDB的使用+coredump
- gdb coredump
- gdb coredump
- coredump的生成以及gdb查看
- GDB(四):gdb coredump
- GDB 看 coredump
- gdb 调试 coredump
- GDB + CoreDump 调试记录
- gdb coredump 问号
- GDB coredump调试
- GDB + CoreDump 调试记录
- GDB---coredump分析
- gdb 使用 coredump
- gdb调试coredump文件
- GDB和coredump
- gdb和coredump
- GDB实践:一场std::sort引发的coredump
- JavaWeb开发之十六:jsp传统标签开发
- DZY Loves Balls
- 机器学习 笔记一
- Android自定义日志工具类,定位方便
- ASP.NET 宏观总结
- GDB之coredump的学习
- Java大牛养成记(3)——SSH框架
- Hi3516A 开发流程(一)
- uva 10474 Where is the Marble?
- 压缩感知重构算法之IHT算法python实现
- limits.h在实际编程中的作用
- Calender类的应用
- JavaWeb开发之十七:jsp自定义标签开发入门
- 一台电脑上运行两个tomcat