Ⅰ “程序core掉”是什么意思
core是unix系统的内核。当你的程序出现内存越界的时候,操作系统会中止你的进程,并将当前内存状态倒出到core文件中,以便进一步分析。
Ⅱ 计算机中什么叫找不到core目录
安装好以后再复制的?
当然不行了,你得复制安装源文件,重新在同学电脑上装一下。
你虽然把文件夹复制过去了,但是很多注册表的内容,一些加载在
C盘
系统目录的文件你是没有复制过去的。
Ⅲ 为什么没有产生core 文件
在 UNIX/linux 系统中,在编译、链接、运行一个自己编写的源程序时,不产生 core 文件才是正常的。 因为系统产生 core 文件的原因通常是由于数组越界、内存越界、变量未初始化就引用、或者是程序中的指针变量指向了一个非法的操作系统的内存单元,才会产生 core 文件,而且了通常 core 文件所占的空间都是很大的,一般都是好几兆字节。
Ⅳ 如何生成core文件
1、先用#ulimit -a可以查看系统core文件的大小限制(第一行),core文件大小设置为0, 即没有打开core mp设置;
[cpp] view plain print?
root@XZX:~/cnnic/project/dnsx/dnsX#ulimit-a
corefilesize(blocks,-c)0
datasegsize(kbytes,-d)unlimited
schelingpriority(-e)0
filesize(blocks,-f)unlimited
pendingsignals(-i)46621
maxlockedmemory(kbytes,-l)64
maxmemorysize(kbytes,-m)unlimited
openfiles(-n)1024
pipesize(512bytes,-p)8
POSIXmessagequeues(bytes,-q)819200
real-timepriority(-r)0
stacksize(kbytes,-s)8192
cputime(seconds,-t)unlimited
maxuserprocesses(-u)46621
virtualmemory(kbytes,-v)unlimited
filelocks(-x)unlimited
ulimit -c 0 不产生core文件
ulimit -c 100 设置core文件最大为100k
ulimit -c unlimited 不限制core文件大小
执行#ulimit -c unlimited,然后#ulimit -a查看结果如下(第一行):
[cpp] view plain print?
root@XZX:~/cnnic/project/dnsx/dnsX#ulimit-a
corefilesize(blocks,-c)unlimited
datasegsize(kbytes,-d)unlimited
schelingpriority(-e)0
filesize(blocks,-f)unlimited
pendingsignals(-i)46621
maxlockedmemory(kbytes,-l)64
maxmemorysize(kbytes,-m)unlimited
openfiles(-n)1024
pipesize(512bytes,-p)8
POSIXmessagequeues(bytes,-q)819200
real-timepriority(-r)0
stacksize(kbytes,-s)8192
cputime(seconds,-t)unlimited
maxuserprocesses(-u)46621
virtualmemory(kbytes,-v)unlimited
filelocks(-x)unlimited
例如:
#gdb ./test core.2065
注:Linux下的C程序常常会因为内存访问错误等原因造成segment fault(段错误),此时如果系统core mp功能是打开的,那么将会有内存映像转储到硬盘上来,之后可以用gdb对core文件进行分析,还原系统发生段错误时刻的堆栈情况。这对于我们发现程序bug很有帮助。
很多系统默认的core文件大小都是0,我们可以通过在shell的启动脚本/etc/bashrc或者~/.bashrc等地方来加入 ulimit -c 命令来指定core文件大小,从而确保core文件能够生成。
除此之外,还可以在/proc/sys/kernel/core_pattern里设置core文件的文件名模板,详情请看core的官方man手册。
需要说明的是:上述方法只是在当前shell中生效,重启之后,就不再有效了。永久生效的办法是如下:
永久生效办法:
#vi /etc/profile 然后,在profile中添加:
ulimit -c 1073741824
(但是,若将产生的转储文件大小大于该数字时,将不会产生转储文件)
或者
ulimit -c unlimited
这样重启机器后生效了。 或者, 使用source命令使之马上生效。
#source /etc/profile
三、指定内核转储的文件名和目录
修改完内核转储设置后,当程序core mp后发现确实在本地目录产生了core文件,但是如果程序多次core mp时,core文件会被覆盖,原因是每次core mp后生成的文件名默认都叫core,接下来就分享下如果想在每次core m时产生的core文件都带上进程号怎么操作,或者你想把内核转储文件保存到其他目录怎么办?
1、core mp文件名自动加上进程ID
#echo 1 >/proc/sys/kernel/core_uses_pid
最后生成的core mp文件名会加上进程ID.
2、另外可以通过修改kernel的参数,指定内核转储所生成的core文件的路径和文件名。
可以通过在/etc/sysctl.conf文件中,对sysctl变量kernel.core_pattern的设置。
#vim /etc/sysctl.conf 然后,在sysctl.conf文件中添加下面两句话:
kernel.core_pattern = /var/core/core_%e_%p
kernel.core_uses_pid = 0
保存后退出。
注:如果/proc/sys/kernel/core_uses_pid这个文件的内容被配置成1,即使core_pattern中没有设置%p,最后生成的core mp文件名仍会加上进程ID。
这里%e, %p分别表示:
%c 转储文件的大小上限
%e 所mp的文件名
%g 所mp的进程的实际组ID
%h 主机名
%p 所mp的进程PID
%s 导致本次coremp的信号
%t 转储时刻(由1970年1月1日起计的秒数)
%u 所mp进程的实际用户ID
可以使用以下命令,使修改结果马上生效。
#sysctl –p /etc/sysctl.conf
请在/var目录下先建立core文件夹,然后执行a.out程序,就会在/var/core/下产生以指定格式命名的内核转储文件。查看转储文件的情况:
#ls /var/core
core_a.out_2456
Ⅳ 小米3怎么没有core文件夹
有两种方法可以添加文件夹。
第一种:
一,按菜单键,在弹出的菜单中,选”编辑模式“。
二,进入”编辑模式“后,点最下面的”文件夹“选项”,就会在桌面添加一个文件夹了。
然后把应用程序往文件夹里面拖就可以了。
第二种:
最简单的方法,如下图,按住一个程序图标,把它拖到另外一个程序徐图标上面,就会自动生成一个文件夹了。
Ⅵ win7系统,一开始系统文件夹里没有coredll.dll,大家都没有吗 在vs2010中
DLL文件是系统的动态链接库文件,你可以按照一下步骤修复1从网上下载这个DLL文件,下载的时候注意去大站下载,以确保安全,将其放到SYSTEM32目录下面2点击开始……运行……CMD,确定,打开命令提示符界面,输入regsvr32*.dll注册该DLL3如果需要注册的DLL较多的话,可以在开始->运行(win+r)下输入命令cmd/cfor%iin(%windir%\system32\*.dll)doregsvr32.exe/s%icmd/cfor%iin(%windir%\system32\*.ocx)doregsvr32.exe/s%i来注册所有的DLL4,以上命令需要手打,如果对于CMD的批处理命令不甚熟悉的话,你也可以使用腾讯电脑管家的电脑诊所进行修复,它的修复方案是图形界面的,非常简单,而且涵盖了大部分的系统常见问题,点下鼠标就可以全自动的修复
Ⅶ 为什么七龙珠cs里没有core文件夹进入游戏退出也没有求解
可以从新下载一个,游戏不大!~
Ⅷ 为什么没有产生core 文件
在Linux上只要打开core mp文件开关,当程序crash时系统生成相应的core文件。下面是简单的一些步骤:
查看当前是否已经打开了此开关
通过命令:ulimit -c 如果输出为 0 ,则代表没有打开。如果为unlimited则已经打开了,就没必要在做打开。
2.通过命令打开
ulimit -c unlimited .然后通过步骤1,可以监测是否打开成功。
3.如果你要取消,很简单:ulimit -c 0 就可以了
通过上面的命令修改后,一般都只是对当前会话起作用,当你下次重新登录后,还是要重新输入上面的命令,所以很麻烦。我们可以把通过修改 /etc/profile文件 来使系统每次自动打开。
步骤如下:
首先打开/etc/profile文件
一般都可以在文件中找到 这句语句:ulimit -S -c 0 > /dev/null 2>&1.ok,根据上面的例子,我们只要把那个0 改为 unlimited 就ok了。然后保存退出。
2.通过source /etc/profile 使当期设置生效。
3.通过ulimit -c 查看下是否已经打开。
其实不光这个命令可以加入到/etc/profile文件中,一些其他我们需要每次登录都生效的都可以加入到此文件中,因为登录时linux都会加载此文件。比如一些环境变量的设置。
还有一种方法可以通过修改/etc/security/limits.conf文件来设置,这个方法没有试过,也是网上看到。不过上面两种就可以了!
最后说一下生成core mp文件的位置,默认位置与可执行程序在同一目录下,文件名是core.***,其中***是一个数字。core mp文件名的模式保存在/proc/sys/kernel/core_pattern中,缺省值是core。通过以下命令可以更改core mp文件的位置(如希望生成到/tmp/cores目录下)
echo “/tmp/cores/core” > /proc/sys/kernel/core_pattern
设置完以后我们可以做个测试,写个程序,产生一个异常。然后看到当前目录会有个core*的文件。
Ⅸ 无法启动此程序,因为计算机中丢失Core.dll怎么办
网上搜一下CORE-RL-wand-.dll,下载下来,放在系统盘的windows文件夹下的system32文件夹里。