<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[[调试]Core Dump是什么？Linux下正确永久开启]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Unix/LinuxC技术]]></category>
<pubDate>Fri, 04 Dec 2015 00:17:41 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	Core Dump是什么？<br/>Core Dump乍听之下很抽象。<br/>当程序运行的过程中异常终止或崩溃，操作系统会将程序当时的内存状态记录下来，保存在一个文件中，这种行为就叫做Core Dump（中文有的翻译成“核心转储”)。<br/>我们可以认为Core Dump是“内存快照”，但实际上，除了内存信息之外，还有些关键的程序运行状态也会同时dump下来，例如寄存器信息（包括程序指针、栈指针等）、内存管理信息、其他处理器和操作系统状态和信息。<br/>Core Dump 对于编程人员诊断和调试程序是非常有帮助的，因为对于有些程序错误是很难重现的，例如指针异常，而 Core Dump 文件可以再现程序出错时的情景。<br/>在半导体作为电脑内存材料之前，电脑内存使用的是 磁芯内存（Magnetic Core Memory），Core Dump 中的 Core 沿用了磁芯内存的 Core 表达。图为磁芯内存的一个单元，来自 Wikipedia.<br/><br/><br/>在 APUE 一书中作者有句话这样写的：<br/>Because the file is named core, it shows how long this feature has been part of the Unix System.<br/>这里的Core就是沿用的是早期电脑磁芯内存中的表达，也能看出Unix系统Core Dump机制的悠久历史。<br/>Dump 指的是拷贝一种存储介质中的部分内容到另一个存储介质，或者将内容打印、显示或者其它输出设备。dump 出来的内容是格式化的，可以使用一些工具来解析它。<br/>现代操作系统中，用Core Dump表示当程序异常终止或崩溃时，将进程此时的内存中的内容拷贝到磁盘文件中存储，以方便编程人员调试。<br/>如何开启Core Dump？<br/>临时开启Core Dump，并且设置大小不受限：<br/>命令行输入： ulimit -c unlimited<br/>要永久打开Core Dump并且使之大小不受限，网上说有两种方法：<br/>1. 打开 core dump 功能<br/>在终端中输入命令 ulimit -c ，输出的结果为 0，说明默认是关闭 core dump 的，即当程序异常终止时，也不会生成 core dump 文件。<br/>我们可以使用命令 ulimit -c unlimited 来开启 core dump 功能，并且不限制 core dump 文件的大小； 如果需要限制文件的大小，将 unlimited 改成你想生成 core 文件最大的大小，注意单位为 blocks（KB）。<br/>用上面命令只会对当前的终端环境有效，如果想需要永久生效，可以修改文件 /etc/security/limits.conf文件。增加一行:<br/># /etc/security/limits.conf<br/>#<br/>#Each line describes a limit for a user in the form:<br/>#<br/>#&lt;domain&gt; &lt;type&gt; &lt;item&gt; &lt;value&gt; * soft core unlimited<br/>2. 在/etc/profile中加入 ulimit -c unlimited<br/>我试了以上两种方法，但是输入<br/>ulimit -c<br/>输出结果始终是0。<br/>后来自己想了一种方法，在Ubuntu下可以：<br/>编辑 .bashrc 文件：<br/>vi ~/.bashrc<br/>添加：<br/>ulimit -c unlimited<br/>保存，退出。<br/>source ~/.bashrc<br/>source命令使修改立即生效。<br/>来自:http://m.toutiao.com/i6215077284911514113/?tt_from=android_share&amp;iid=3222127616&amp;app=news_article&amp;utm_medium=toutiao_android&amp;utm_campaign=client_share
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [调试]Core Dump是什么？Linux下正确永久开启]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>