Ⅰ 「程序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文件夾里。