首页 > 其他分享 >coredump了解

coredump了解

时间:2022-10-29 20:58:37浏览次数:71  
标签:KB ulimit coredump unlimited 了解 内存 size

转自:https://blog.csdn.net/qq_20553613/article/details/106672319

1.介绍

coredump指的是应用程序因为各种原因导致异常终止时,操作系统将应用程序的异常发生时状态信息记录为一个coredump的文件。一个coredump文件主要包含了应用程序的内存信息、寄存器状态、堆栈地址、函数调用上下文。通过该文件,可以确定程序异常发生时的调用位置,如果是堆栈溢出,还需分析多层函数的调用信息。

2.原因

2.1 内存访问越界

  • 数组下标越界
  • 超出动态(malloc/new)内存申请范围
  • 字符串没有结束符,一些函数依赖于字符串结束符,如 strcpy、strcmp、sprintf

2.2 访问非法指针

  • 空指针(未申请内存)
  • 野指针(已释放内存)
  • 重复释放指针(内存)
  • 指针强制转换,指针强制转换需特别谨慎,可能因为对齐、起始地址等问题引起内存访问错误

2.3 堆栈溢出

分配大量局部变量、多重函数调用、较深的函数递归等可能导致堆栈溢出

2.4 多线程访问

  • 调用不可重入函数
  • 共享数据未互斥访问

3.开启

"ulimit -c"命令,查看是否开启,返回0表示未开启coredump记录功能。

:~$ ulimit -c;
unlimited

可以使用“ulimit -c [size]”命令指定记录coredump文件的大小,即是开启coredump记录。执行“ulimit -c unlimited”设定,设置不限定大小。

通过配置文件永久设置,在"/etc/profile"文件增加" ulimit -c unlimited "

ulimit命令:

$ ulimit -a
core file size          (blocks, -c) unlimited    //-c <core最大值>:设定core文件的最大值,单位为块(block)
data seg size           (kbytes, -d) unlimited    //-d <数据节段大小>:进程数据段最大值,单位为KB
scheduling priority             (-e) 0    //
file size               (blocks, -f) unlimited    //-f <文件大小>:进程可创建最大文件值,单位为块(block)
pending signals                 (-i) 1029615  
max locked memory       (kbytes, -l) 64     //-l <内存大小>: 可加锁内存大小,单位 为KB 
max memory size         (kbytes, -m) unlimited    //-m <内存大小>:指定可使用内存的上限,单位为KB
open files                      (-n) 1000000    //-n <文件数目>:进程最大可打开的文件数(文件描述符数目)
pipe size            (512 bytes, -p) 8    //-p <缓冲区大小>:管道缓冲区的大小,单位为KB
POSIX message queues     (bytes, -q) 819200    
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192   // -s <堆栈大小>:线程最大堆栈大小,单位为KB
cpu time               (seconds, -t) unlimited    //-t <cpu时间>:cpu最大占用时间,单位为秒
max user processes              (-u) 1029615  //-u <进程数目>:用户可创建的最大进程数
virtual memory          (kbytes, -v) unlimited    //-v <虚拟内存大小>:进程最大可用虚拟内存,单位为KB
file locks                      (-x) unlimited

 

标签:KB,ulimit,coredump,unlimited,了解,内存,size
From: https://www.cnblogs.com/BlueBlueSea/p/16839814.html

相关文章

  • mysql高可用架构了解
    转自:https://www.cnblogs.com/gomysql/p/3675429.html,https://www.cnblogs.com/gomysql/p/3671896.htmlhttps://cloud.tencent.com/developer/article/10315421.MHA  ......
  • 如何用监控进行视频直播?一文了解清楚
    关于监控视频如何直播?不断有朋友多次问到,在监控项目中,对视频监控进行直播也是常有的事,很多时候甲方都有这个要求,也在很多监控项目有应用,例如校园,企业中都会涉及到,之前我们......
  • 13个QA带你了解线上压测的知识点
    摘要:设计一个线上压测系统能让我们学习到多少东西?这13个问题看你能否搞定。本文分享自华为云社区《设计一个线上压测系统能让我们学习到多少东西?13个问题看你能否搞定》,作......
  • 13个QA带你了解线上压测的知识点
    摘要:设计一个线上压测系统能让我们学习到多少东西?这13个问题看你能否搞定。本文分享自华为云社区《​​设计一个线上压测系统能让我们学习到多少东西?13个问题看你能否搞定​......
  • NTP协议了解
    转自:https://blog.srefan.com/2017/07/ntp-protocol/,讲的非常全面1.介绍NTP是网络时间协议(NetworkTimeProtocol),它用来同步网络设备【如计算机、手机】的时间的协议。......
  • 一文带你了解Java中的Scanner键盘输入关键字、random 随机数关键字、System类和匿名函
    Scanner键盘输入Scanner类的功能:可以实现键盘输入数据,到程序当中。引用类型的一般使用步骤:1.导包import包路径.包名称如果需要使用目标类,和当前类位于同一个包下,......
  • PyTorch : 了解Tensor(张量)及其创建方法
    本文已收录于Pytorch系列专栏:​​Pytorch入门与实践​​专栏旨在详解Pytorch,精炼地总结重点,面向入门学习者,掌握Pytorch框架,为数据分析,机器学习及深度学习的代码能力打下......
  • 「人脸识别」人工智能应用最广泛的技术,你了解多少?
    人脸是日常生活中最常见和最熟悉的生物特征。作为人工智能应用最广泛的技术,人脸识别常用于安防、支付、考勤、金融等领域,提升了人们生活的安全性和便捷性。什么是人脸识别......
  • 一文了解 NextJS 并对性能优化做出最佳实践
    引言从本文中,我将从是什么,为什么,怎么做来为大家阐述NextJS以及如何优化NextJS应用体验。一、NextJS是什么NextJS是一款基于React进行web应用开发的框架,它以极......
  • 一篇文章带你了解轻量级Web服务器——Nginx简单入门
    一篇文章带你了解轻量级Web服务器——Nginx简单入门Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件代理服务器在本篇中我们会简单介绍Nginx的特点,安装,相关指令......