linux下如何dumprom.exe显卡的rom

Linux下调试core dump 文件的方法
我的图书馆
Linux下调试core dump 文件的方法
在开发和使用Linux 程序时,引擎有时会莫名其妙的core 掉,在网上查了一下,整理了一个简单的调试core 文件的方法。1、什么是core dump?Core,即core memory,而dump 就是堆放的意思。core dump 又叫核心转储,当程序运行过程中发生异常,程序异常退出时,由操作系统把程序当前的内存状况存储在一个core 文件中,叫core dump。2、如何打开core dump支持?有的操作系统并没有默认打开core dump 支持,需要用ulimit -c unlimited 语句进行设置,core 文件生成的位置一般在程序运行的当前目录下,文件名为core. 进程号( 当然不同的系统也许有所不同,可以查看相手册对路径和文件名进行设置).3、Core dump的使用方法首先应该在用gcc 进行编译时选择-g 选项,以便起动debug 支持,生成可执行文件时ex,./ex 运行可执行文件,如果程序当掉,则会生成一个core 文件,假设为core.1568,则gdb excore.1568 进入gdb,然后再用where 命令进行查看即可。先看看我用的是个什么机器:$ uname -a再看看默认的一些参数,注意core file size是个0,程序出错时不会产生core 文件了。$ ulimit -acore file size (blocks, -c) 0……写个简单的程序,看看core 文件是不是会被产生。(代码略)$ gcc -Wall -g foo.c$ ./a.outSegmentation fault$ ls -l core.*ls: core.*: No such file or directory没有找到core 文件,我们改改ulimit 的设置,让它产生。1024 是随便取的,要是core 文件大于1024 个块,就产生不出来了。$ ulimit -c 1024$ ulimit -acore file size (blocks, -c) 1024……$ ./a.outSegmentation fault (core dumped)$ ls -l core.*-rw------- 1 uniware uniware 53248Jun 30 17:10 core.9128注意看上述的输出信息,多了个(coredumped)。确实产生了一个core 文件,9128 是该进程的PID。我们用GDB 来看看这个core。$ gdb --core=core.9128(输出信息略)(gdb) bt#0 0x in ?? ()#1 0xbfffd8f8 in ?? ()#2 0x0804839e in ?? ()#3 0xb74cc6b3 in ?? ()#4 0x in ?? ()此时用bt 看不到backtrace,也就是调用堆栈,原来GDB 还不知道符号信息在哪里。我们告诉它一下:(gdb) file ./a.out(gdb) bt#0 0x in sub () at foo.c:17#1 0x in main () at foo.c:8此时backtrace 出来了。在程序不寻常退出时,内核会在当前工作目录下生成一个core 文件(是一个内存映像,同时加上调试信息)。使用gdb 来查看core 文件,可以指示出导致程序出错的代码所在文件和行数。其他总结1.core文件的生成开关和大小限制1)使用ulimit -c 命令可查看core 文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core 文件。2)使用ulimit -c filesize 命令,可以限制core 文件的大小(filesize 的单位为kbyte)。若ulimit -c unlimited,则表示core 文件的大小不受限制。如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的core 文件。在调试此core 文件的时候,gdb 会提示错误。2.core文件的名称和生成路径core 文件生成路径:输入可执行文件运行命令的同一路径下。若系统生成的core 文件不带其他任何扩展名称,则全部命名为core。新的core 文件生成将覆盖原来的core 文件。1)/proc/sys/kernel/core_uses_pid 可以控制core 文件的文件名中是否添加pid 作为扩展。文件内容为1,表示添加pid 作为扩展名,生成的core 文件格式为core.xxxx ;为0 则表示生成的core 文件同一命名为core。可通过以下命令修改此文件:echo “1″ & /proc/sys/kernel/core_uses_pid2)proc/sys/kernel/core_pattern 可以控制core 文件保存位置和文件名格式。可通过以下命令修改此文件:e c h o “/ c o r e f i l e / c o r e -%e -%p -%t” &core_pattern,可以将core 文件统一生成到/corefile 目录下,产生的文件名为core- 命令名-pid- 时间戳3.core文件的查看core 文件需要使用gdb 来查看。gdb ./a.outcore-file core.xxxx使用bt 命令即可看到程序出错的地方。以下两种命令方式具有相同的效果,但是在有些环境下不生效,所以推荐使用上面的命令。1)gdb -core=core.xxxxfile ./a.outbt2)gdb -c core.xxxxfile ./a.outbt4. 开发板上使用core 文件调试在 PC 上调试开发板上产生的core 文件,需要使用交叉编译器自带的gdb,并且需要在gdb中指定solib-absolute-prefix 和 solib-searchpath两个变量以保证gdb 能够找到可执行程序的依赖库路径。有一种建立配置文件的方法,不需要每次启动gdb 都配置以上变量,即:在待运行gdb 的路径下建立.gdbinit。配置文件内容:set solib-abso lute-prefix YOUR_CROSS_COMPILE_PATHs e t s o l i b - s e a r c h - p a t h Y O U R _ C R O S S _COMPILE_PATHset solib-search-path YOUR_DEVELOPER_TOOLS_LIB_PATHhandle SIG32 nostop noprint pass注意:待调试的可执行文件,在编译的时候需要加-g,core 文件才能正常显示出错信息!有时候core 信息很大,可以通过挂载到PC 的方式来规避这一点.
TA的最新馆藏[转]&Linux下用dump实现备份和还原
ux下用dump实现备份和还原
对于系统而言,我们可以有很多种辦法去备份(还原)系统或文件,之所以要去做备份,就是为了在系统或文件遭到损害时,能及时恢复,把损失减小到最小。当然,对于企业服务器而言,备份的重要性是举足轻重。咱们今天就详细讨论一下LINUX中如何用dump和restore实现备份和还原。
一,dump的原理,优点及限制
dump和restore默认已经安装在RHEL5中,如果你使用的Linux中没有,可以自己去google中搜一下并下载安装。
使用dump命令时,它会建立一份自上次备份操作以来进行修改过的文件列表,然后把这些文件打包成一个单独的文件。在做备份时,需要指定一个备份级别,它是0-9之间的一个整数。级别为N的转储会对从上次进行的级别小于N的转储操作以来修改过的所有文件进行备份,而级别0就是完全备份。通过这种方式,可以很轻松的实现增量备份,差异备份,甚至每日备份。例如,第一次备份时可选择级别0(具体操作看后面),以后每天做增量备份时就可以每天依次使用级别1,级别2,级别3等等& &;当需要每天做差异备份时,可先选择级别0做完整备份,然后每天都使用同一大于0的级别就行了,比如说第二天用5,第三天也用5,第四天也一样。
使用dump的优点:
1,备份可以跨多卷磁带
2,能备份任何类型的文件,甚至是设备
3,备份时,文件的权限,宿主,宿组,修改时间等都会被保存
4,能够正确处理从未包含任何数据的文件块(孔洞文件)
5,能够做增量,差异备份
它也有不足:
1,每个文件系统必须单独转储备份
2,只有本地计算机的文件系统才能够转储备份(rdump,rrestore可用来弥补此项不足)
当然,使用tar也可以用来实现备份和还原,但tar只能在Linux或Unix环境下使用,对于跨平台的环境,dump使用起来个人感觉更方便一些。
如果有条件,dump也可以将备份存储在磁带上。Linux通常用/dev/st0代表倒带设备,而用/dev/nst0代表非倒带设备,使用倒带设备存储时,当磁带用完它会自动倒带并接着存储,所以会覆盖以前的数据,这样就存在以前数据丢失的风险。这个地方咱们就不详细讨论了。
二,dump的格式,常用参数及使用
格式:dump [-level#] [-acmMnqSuv] [-A file] [-B records] [-b blocksize]
[-d density] [-D file] [-e inode#,inode#,...] [-E file]
[-f file] [-h level] [-I nr errors] [-j zlevel] [-Q file]
[-s feet] [-T date] [-y] [-z zlevel] filesystem
常用参数 Level:备份级别0-9
-B:指定用来备份的磁带的长度,以KB为单位(有些磁带不支持以结束标志判断时,就需要使用到此参数
-b:指定块大小,默认为10
-d:指定密度,默认为1600BPI
-D:设定存储数据库的名称和路径,默认是/etc/dumpdates文件
(-e,-E:与备份文件的inodes数有关的参数)
-f:指定备份文件的路径和名称
-u:更新数据库文件/etc/dumpdates
-s:统计备份所需的空间,一般在备份前做,以防磁带或磁盘空间不足
dump &0s /dev/sda1
完整备份/dev/sda1前统计一下需多大容量
dump -0u &f /tmp/boot.dump /boot
以完全备份的方式备份/boot分区到文件/tmp/boot.dump,并且更新/etc/dumpdates数据库文件。&0&代表的就是备份级别为完全备份。&u&更新数据库,会将文件的日期,存储级别,文件系统等信息都记录下来。如果从来都不使用-u参数,那么所有的存储都会变为级别0。因为,系统不会有先前备份过当前文件系统的记录。
当以后更改了/boot,比如说内核升级后,如果再想备份,可以按下列方式:
dump -1u &f /tmp/boot1.dump /boot
这样就只会备份完全备份后有变化的文件(级别1大于0)。
如果以后想做增量备份,就依次用级别2,3,4& &
如果想做差异备份,以后就一直用级别1.关于增量备份和差异备份的区别看看下图吧,不详细讲了:
三,查看备份文档中的文件及还原
查看备份文档中的文件和还原就需要用到另外一个工具,restore。
1, 查看备份文档中的文件
-t参数是查看的意思,-f是指定要查看的备份文件。通过以上命令,就可以查看备份文件中备份了哪些文件。
1, 还原备份
还原备份的时候有两种方式可以选择,一种是完全还原,一种是有选择的部分还原。
咱们还是用前面的例子来看,如果你前面备份的/boot分区文件损坏了,这时候你想还原,可以按如下步骤:
-r参数表示重建
如果只是一部分数据丢失了,那么可以使用参数-i通过交互方式来实现文件的选择性还原
这个地方我故意删掉了一个文件initrd-2.6.18-53.el5.img
使用参数-i交互式,并指定备份文件。
通过?来查看可以使用的命令,ls是列出备份文件的内容
通过add来选择要恢复的文件,选定后再ls的时候会标记为*
通过extract还原选定的文件。
提示&Specify next volume&时填如1,它表示是在单独一卷磁带(这里我用的是磁盘的空间)上进行的备份。下面一行提示选&n&,表示不是恢复整个文件系统,而是单个文件。
关于在linux系统进行增量备份的例子
1. dump/restore 进行增量备份 注意,这种方法只能进行整个分区备份# mount /dev/sdb1 /mnt/sdb&& 新建一个硬盘将其挂载到/mnt/sdb&# ls /mnt/sdb123& 456& aaa.zip& f1&里面有4个文件 f1为目录
现在可以备份原始镜像#dump -0u /dev/sdb1 -f /backup/sdb1_0u_110210.dump& DUMP: Date of this level 0 dump: Thu Feb 10 23:21:40 2011& DUMP: Dumping /dev/sdb1 (/mnt/sdb) to /backup/sdb_0u_110210.dump& DUMP: Label: none.....中间省略& DUMP: Average transfer rate: 5687 kB/s& DUMP: DUMP IS DONE备份完成
dump -0u& :&&&&0代表镜像备份(完整备份)&&&&&&& 1-9 分别代表在前一个级别基础上的增量备份
下面进行增量备份:首先 将123那个文件删除,新增一个文件kkk 并输入hello man![ sdb]# ls456& aaa.zip& f1& kkk&开始增量备份:[ sdb]# dump -1u /dev/sdb1& -f /backup/sdb1_1u_110210.dump& DUMP: Average transfer rate: 0 kB/s& DUMP: DUMP IS DONE现在/backup下有两个备份了。[ sdb]# ls /backupsdb1_0u_110210.dump& sdb1_1u_110210.dump为了更好了解我们在增加一个备份,备份之前我们再改变以下分区里面的文件修改 456 内容为456 modifiy&&& 删除aaa.zip[ sdb]# ls456& f1& kkk备份第二个增量,这里用3u 只要比前面大就可以了,建议备份都用2u 4u 6u 这样备份,不然你所有数字都用上,123456 如果想重新再2u的基础上再备份就不行了,因为3已经用了,你只能在6后面备份[ sdb]# dump -3u /dev/sdb1& -f /backup/sdb1_3u_110210.dump备份完毕 就删除里面的所有记录然后现在开始恢复[ sdb]# restore -r -f /backup/sdb1_0u_110210.dump&& 先恢复0u[ sdb]# ls123& 456& aaa.zip& f1& restoresymtable这时候把第一备份都还原出来了,然后一个一个还原# restore -r -f /backup/sdb1_1u_110210.dump# restore -r -f /backup/sdb1_3u_110210.dump# ls456& f1& kkk& restoresymtable和最后一次备份一样了查看备份镜像里面的内容# restore -t -f /backup/sdb1_1u_110210.dumpDump&& date: Thu Feb 10 23:28:38 2011Dumped from: Thu Feb 10 23:21:40 2011Level 1 dump of /mnt/sdb on :/dev/sdb1Label: none&&&&&&&& 2&&&&& .&&&&&&& 16&&&&& ./kkk提取镜像里的文件[ sdb]# restore -if /backup/sdb1_3u_110210.dumprestore & ls.:3&&&&&&&&&&&&&&& f1/&&&&&&&&&&&&& lost+found/&&&&& restoresymtable456&&&&&&&&&&&&& kkk&&&&&&&&&&&&& newfile
restore & add kkkrestore & extractYou have not read any volumes yet.Unless you know which volume your file(s) are on you should startwith the last volume and work towards the first.Specify next volume # (none if no more volumes): 1set owner/mode for '.'? [yn] nrestore & quit关于定期备份的方案:先做一个完整的备份&#dump -0u /dev/sdb1 -f /backup/sdb1_0u_110210.dump周一:#dump -2u /dev/sdb1 -f /backup/sdb1_1u_110210.dump周二:#dump -2u /dev/sdb1 -f /backup/sdb1_2u_110210.dump周三:#dump -2u /dev/sdb1 -f /backup/sdb1_3u_110210.dump。。。。。--下面这方法比较灵活,直接用tar备份&# cd /test/t1# lsaaa.zip& file1& file2& file3有三个文件首先执行完整备份# tar -g snapshot -zcf backupp_full.tar.gz /test/t1然后修改文件,增加一个文件进行增量备份:# tar -g snapshot -zcf backupp_incremental_1.tar.gz /test/t1修改再次增量备份# tar -g snapshot -zcf backupp_incremental_2.tar.gz /test/t1还原tar zxf backup_full.tar.gz -C /tar zxf backup_incremental_1.tar.gz -C /tar zxf backup_incremental_2.tar.gz -C /注意,修改的文件以后面增量备份为准,删除的文件这个种备份方法是不会跟着删除的,恢复的时候之前删除的文件也会恢复
另一种tar&备份&用-u参数进行增量备份,同样删除的文件不会同步
备份资料tar zcf backup.tar& /test/t1
查看 内容tar ztf backup.tarfile1 file2 file3
在/test/t1下新增一个文件
增量备份tar uf backup.tar& /test/t1还原备份其实就是直接解压tar zxf backup.tar
&如果你需要压缩增量备份的时候需要先将原来那个解压然后再备份在压缩 (-u 参数不会自动压缩)gunzip backup.tar.gztar uf backup.tar testgzip backup.tar
1、dump 命令可以用来备份 ext2 和 ext3 格式的文件系统,也就是可以备份整个分区。简要参数说明:level# 通常在用dump 命令备份时,会加上 -0~-9的参数,&-0&完全备份 ,&-1~-9&增量备份(只备份上次备份后被变更的文件,只备份比当前备份数字小的数字);如下果,备份顺序为 &0、1、2&但通常不会使用上面的方式进行备份,而是使用&0、2、1&的顺序进行备份;-f : 可以用来指定备份的文件储存的位置;例:dump &f /dev/st0 备份到磁带中;-u : 每次执行完 dump 命令时,都会将备份的级别号记录到/etc/dumpdates文件中,这个参数就是将每次执行 dump 命令时,将对应的 dump 级别号更新到 /etc/dumpdates文件中;例:(1) dump &0 &u &f ~/backup&&/dev/sda1& &备份 sda1 分区到家目录中 backup 文件中,同时更新 /etc/dumpdates 将当前备份的级别号记录到这个文件中;十四、使用cpio命令备份还原文件1、cpio 命令可以解压缩一个打包文件或将文件到一个已打包好的文件中去。常用参说明说(可使用 man cpio 命令查看详细说明):& &d&&可以用来建立一个目录;& &i& &解压缩;& &o&&将文件进行打包;& &t&&列出打包文件中的内容;注:在cpio解压缩文件时,必须解压缩到没有原始文件的目录中。
更多相关文章
1.简述 通常,利用SSH管理远程Linux服务器时,经常需要与本地交互文件.当然,我们可
这篇文章我贴了好多地方了,呵呵,希望新学期开学大家能上网了~ 用windows的也建议换成这个开源版本的for windows版,不会默认弹出学校的首页,并且支持共享上网` 如果你只是挂qq,上上网的化,可以跟别人共享上网,Dr.com是每个帐户100k/s的下载速度,连结速度还要高于此,足够了,想
有时候因为编码需要修改mysql的编码,windows下修改有图文界面简单一些,linux大家就可以参考下面的方法
默认登录mysql之后可以通过SHOW VARIABLES语句查看系统变量及其值. mysql& show variables like '%character%'; 说明: ...
Linux之旅(1): diff, patch和quilt (下) 2 quilt 我们自己的项目能够用cvs或svn管理所有代码.但有时我们要使用其它开发人员维护的项目.我们须要改动一些文件,但又不能直接向版本号管理工具提交代码.自己用版本号管理工具重建整个项目是不合适的,由于大多数代码都是别人维
&精通Unix下C语言编程与项目实践&读书笔记(new) 文章试读 不拘一个遍程序系列:编程序不能一个脑袋钻到底,有时要学会变通,即所谓的曲线救国.一.二.三.四 职场规划:一些杂七杂八的职场感悟吧.不值钱的软件人才 精力充沛与事业成功 让系分来得更猛烈些吧 不值钱的系统分析师 经济危机 ...
RMAN 备份路径困惑(使用plus archivelog时) --******************************************* -- RMAN 备份路径困惑(使用plus archivelog时) --*********************************** ...
一.相关文件夹 ORACLE_BASE是oracle的根目录,ORACLE_HOME是or
在Linux 系统中,可以通过setfacl 来实现目录下创建文件或子目录,并继承父目录的权限. 下面以 root 用普通用户 user1 .在目录/mnt下 [ mnt]# setfacl
岁月不饶人,转眼之间即将迎来自己而立之年.如何纪念才能更有意义?困扰了我很久,想来自己已经即将告别无忧无虑莽撞冲动的青年阶段,出去爆餐一顿或约三五知己痛饮庆祝一番似乎与这个转折比起来太过庸俗了.给自己买件礼物么?时间
以前旧的方式去调用web service, 可以通过CookieContainer去设置cookie,改用WCF方式去调用,则必须配置allowCookies属性为true
&system.serviceM ...
该题即是昨天没有做出来的题目,想了很久,想出了一个普通的做法,提交发现超时了.思想是新建一个数组,保存每个元素与后面的元素相乘后得到的最大值,然后再在该数组中选出最大的值,返回. 发现行不通后决定还是求教度娘了. 果
IProductRepository接口定义了一个仓库,我们通过它获得.更新Product对象.IPriceReducer接口指定了一个功能,它将要对所有的Products实施,通过一个参数,降低他们的价格. 在这个
ERROR 2013 (HY): Lost connection to MySQL server at 'waiting for initial communication packet', system error
&html& &head& &meta http-equiv=&Content-Type& content=&text/ charset=UTF- ...
~5日,&嵌入式软件测试高级实务&内训在武汉某企业成功举辦!本 ...
在数据仓库环境中,我们通常利用物化视图强大的查询重写功能来提升统计查询的性能,但是物化视图的查询重写功能有时候无法智能地判断查询中一些相关联的条件,以至于影响性能.比如我们有一张销售表sales,用于存储订单的详细信
1\set snmp community &public& Read-Write Trap-on version any 2\set snmp host &public& 19 ...
要禁止textarea在firefox下面可以自由拖动,需要设置textarea的resize为 本文出自 &探索者& 博客,请务必保留此出处http://1906754.blog.51 ...Linux服务器上的应用程序如何将当前内存状态dump出来?
Linux服务器上的程序,平时崩溃的话会有core文件产生,我们可以gdb进去查看崩溃前的内存状态。
我想请教一下一个正在运行的程序,gdb直接调试进程的话,会造成进程中断,有没有方法能把当前的内存dump成类似core文件的结构。
刚刚查了一下,gcore可以满足这个需求
--- 共有 2 条评论 ---
多谢 我明天试下,万分感谢
可以先fork,子进程调用abort生成core文件,父进程继续执行
引用来自“无心睡眠”的答案可以先fork,子进程调用abort生成core文件,父进程继续执行
这个子进程需要修改程序自己写吧?我遇到的问题是,有一个程序不明原因的内存增加了,开发方面想找到具体是什么原因。但是gdb的话,程序会中断会造成用户掉线。要重启换程序,又不能保证再还原现在遇到的问题。
如果你不想中断用户程序的话,可以用gdb attach 上去调试在linux平台下,设置core dump文件生成的方法
在linux平台下,设置core dump文件生成的方法
发布时间: 17:48:27
编辑:www.fx114.net
本篇文章主要介绍了"在linux平台下,设置core dump文件生成的方法",主要涉及到在linux平台下,设置core dump文件生成的方法方面的内容,对于在linux平台下,设置core dump文件生成的方法感兴趣的同学可以参考一下。
core dump的概念:
A core dump is the recorded state of the working memory of a computer program at a specific time, generally when the program has terminated abnormally (crashed). In practice, other key pieces
of program state are usually dumped at the same time, including the processor registers, which may include the program counter and stack pointer, memory management information, and other processor and operating system flags and information. The name comes
from the once-standard memory technology core memory. Core dumps are often used to diagnose or debug errors in computer programs. On many operating systems, a fatal error in a program automatically triggers a core dump, and by extension the phrase &to dump
core& has come to mean, in many cases, any fatal error, regardless of whether a record of the program memory is created.
在linux平台下,设置core dump文件生成的方法: &
1) 在终端中输入ulimit -c 如果结果为0,说明当程序崩溃时,系统并不能生成core dump。 &
2) 使用ulimit -c unlimited命令,开启core dump功能,并且不限制生成core dump文件的大小。如果需要限制,加数字限制即可。ulimit - c 1024 &
3) 默认情况下,core dump生成的文件名为core,而且就在程序当前目录下。新的core会覆盖已存在的core。通过修改/proc/sys/kernel/core_uses_pid文件,可以将进程的pid作为作为扩展名,生成的core文件格式为core.xxx,其中xxx即为pid &
4) 通过修改/proc/sys/kernel/core_pattern可以控制core文件保存位置和文件格式。例如:将所有的core文件生成到/corefile目录下,文件名的格式为core-命令名-pid-时间戳. echo &/corefile/core-%e-%p-%t& & /proc/sys/kernel/core_pattern&
结果亲测,上面方法只能当前用户登录临时有效,系统重启更换用户就失效了
可以修改/etc/security/limits.conf 在里面添加软限制core文件大小
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:【调试】Core Dump是什么?Linux下如何正确永久开启?
Core Dump是什么?
Core Dump乍听之下很抽象。
当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成&核心转储&)。
我们可以认为Core Dump是&内存快照&,但实际上,除了内存信息之外,还有些关键的程序运行状态也会同时dump下来,例如寄存器信息(包括程序指针、栈指针等)、内存管理信息、其他处理器和操作系统状态和信息。
对于编程人员诊断和调试程序是非常有帮助的,因为对于有些程序错误是很难重现的,例如指针异常,而 Core Dump 文件可以再现程序出错时的情景。
在半导体作为电脑内存材料之前,电脑内存使用的是 磁芯内存(Magnetic Core Memory),Core Dump 中的 Core 沿用了磁芯内存的 Core 表达。
下图为磁芯内存的一个单元:
磁芯内存的一个单元
在 APUE 一书中作者有句话这样写的:
Because the file is named core, it shows how long this feature has been part of the Unix System.
Core在英语中是&核心;要点;果心;[计] 磁心&的意思。
这里的Core就是沿用的是早期电脑磁芯内存中的表达,也能看出Unix系统Core Dump机制的悠久历史。
Dump在英语中是&倾倒;倾卸&的意思,指的是拷贝一种存储介质中的部分内容到另一个存储介质,或者将内容打印、显示或者其它输出设备。dump 出来的内容是格式化的,可以使用一些工具来解析它。
现代操作系统中,用Core Dump表示当程序异常终止或崩溃时,将进程此时的内存中的内容拷贝到磁盘文件中存储,以方便编程人员调试。
如何开启Core Dump?
临时开启Core Dump,并且设置大小不受限:
命令行输入:
ulimit -c unlimited
要永久打开Core Dump并且使之大小不受限,网上说有两种方法:
1.打开 core dump 功能
在终端中输入命令 ulimit -c ,输出的结果为 0,说明默认是关闭 core dump 的,即当程序异常终止时,也不会生成 core dump 文件。
我们可以使用命令 ulimit -c unlimited 来开启 core dump 功能,并且不限制 core dump 文件的大小; 如果需要限制文件的大小,将 unlimited 改成你想生成 core 文件最大的大小,注意单位为 blocks(KB)。
用上面命令只会对当前的终端环境有效,如果想需要永久生效,可以修改文件 /etc/security/limits.conf文件。增加一行:
# /etc/security/limits.conf
#Each line describes a limit for a user in the form:
#&domain& &type& &item& &value&&
* & &soft & &core & &unlimited
2.在/etc/profile中加入
ulimit &-c unlimited
我试了以上两种方法,但是输入
输出结果始终是0。
后来自己想了一种方法,在Ubuntu下行得通:
编辑 .bashrc 文件:
vim ~/.bashrc
ulimit -c unlimited
保存,退出。
source ~/.bashrc
source命令使修改立即生效。
本文永久更新地址:
------分隔线----------------------------}

我要回帖

更多关于 linux core dump 开启 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信