linux core dump学习

您所在的位置:网站首页 linux测试ping linux core dump学习

linux core dump学习

2023-03-16 03:06| 来源: 网络整理| 查看: 265

本文转自:http://blog.csdn.net/boyxulin1986/article/details/11020773

1. core dump是什么?core dump又叫核心转储,当操作系统收到特定的signal时,会生成某个进程的core dump文件。这样程序员可以根据已经生成的core dump文件来debug查错。gdb -c core_file ./mainbt这样就能看到函数的调用栈了,不过很多时候这个调用栈信息对debug来讲可能是没用的。

2. 如何确认linux系统是否启动了core dump功能?通过ulimit -c来查看,如果是0说明core dump功能是关着的;如果是unlimited则说明系统已经打开了core dump功能。

3. 如何开启或关闭core dump功能?ulimit -c unlimited用来开启core dump功能;ulimit -c 0则用来关闭core dump功能。

4. umilit命令是干什么的?ulimit命令通过一些参数选项来管理不同种类的系统资源,比如-c选项即用来指定core文件的大小。所以通过ulimit -c可以查看当前系统已经设定的core文件的大小;通过ulimit -c unlimited可以设置core文件为无限大,也就是启动了core dump功能了。ulimit -a可以显示所有的limit信息。

5. 当程序crash时,core dump文件会放到哪里去?cat /proc/sys/kernel/core_pattern可以查看core dump文件的放置位置,用户可以根据需要自行设定。例如用户想要将core dump文件放到USB根目录,可以通过如下的命令来设定:echo /mnt/usb/sda1/core_%e_sig%s_pid%p > /proc/sys/kernel/core_pattern,其中%e,%s,%p是core_pattern可以设置的格式符,%e表示命令名,%s表示产生core dump的signal,%p表示产生core dump的process的PID。

6. 哪些情况不会产生core dump文件?linux很多signal默认都会产生core dump文件的,关于这部分我们会放到linux signal那里做详细的讨论,此处省略一千字。

7. 如何测试所做的core dump配置是否正确?ulimit -c unlimitedecho /mnt/usb/sda1/core_dump > /proc/sys/kernel/core_patternecho 1 > /proc/sys/kernel/core_uses_pid做了以上设置后,再:ulimit -ccat /proc/sys/kernel/core_patterncat /proc/sys/kernel/core_uses_pid查看设置是否正确。如果设置都正确的话,先用ps -A | grep process_name找到需要测试的process的PID。kill -11 pid向pid这个process发生SIGSEGV。由于core dump文件通常都很大,所以稍等一会你再去检查/mnt/usb/sda1/,你会发现下面多了一个类似于core_xx的文件了。由于SIGSEGV的默认动作会产生core dump文件,所以首先你得确保你的process没有去接管SIGSEGV,这样kernel才会默认去处理。如果你的process接管了这个signal,那你可以用其它的一些signal做实验,因为默认会产生core dump文件的signal有很多。

8. core dump的应用有哪些?(1) process不预期的崩溃掉。这时如果能取到core dump文件的话,对解决问题可能会有很大帮助;(2) 程序卡住或死锁时,发送诸如SIGSEGV等能够默认产生core dump文件的signal给你的process。借助于core dump文件,可能会高效的解决问题。关于core dump的应用,后续有条件会再补充一些实验及实验结果。

9. /proc/PID/coredump_filter是用来干什么的?sh-# cat /proc/506/coredump_filter00000023sh-#

可以通过# man core命令来查看,core dump filter中的每个bit对应一种类型的数据,比如:bit0 dump anonymous private mappings.bit1 dump anonymous shared mappings....设定了相应的bit,即意味着进程崩溃时相应类型的内存数据就会dump下来。通常core dump filter的设定值为3.# echo 3 > /proc//coredump_filter

0 0 linux core dump学习 linux core dump学习 linux core dump学习 LInux 进程 core dump 学习 GDB学习之Core Dump-linux Linux core dump, core dump file LINUX core dump 详解 linux core dump linux core dump linux core dump LINUX core dump详解 Linux Core dump Linux Core Dump设置 linux core dump Linux core dump详解 Linux Core Dump linux core dump使用 LINUX core dump详解 linux注册服务 COCOS2D-X ANDROID BOX2D 导出excel GSM的语音被叫流程(MT) RabbitMQ与SpringMVC集成并实现发送消息和接收消息(持久化)方案二 linux core dump学习 Android去掉标题栏和全屏都是件很容易的事情 谷歌亚马逊争相修复Shellshock安全漏洞 thinkPHP中debug模式 logback与Log4J的区别 android pull dom解析xml 今年国庆,我选择给自己充电 System.NullReferenceException:未将对象引用设置到对象的实例,这是一个新鸟,中鸟,老鸟都避不开的错误 python print以及%格式化


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3