導航:首頁 > 操作系統 > corelinux

corelinux

發布時間:2022-04-24 02:53:01

1. 誰能告訴我linux下出core,core究竟是什麼

就是一個程序出錯時,相關的調試信息,生成的一個文件。
可以對它調試,得到出錯原因。
用gdb就可以了。但你的程序必須帶gdb信息。
也就是說,在編譯的時候要指定-g 參數。

2. linux有多個core文件,怎麼區分它們屬於哪個進程

只在ubuntu上試過, 以例子說明

強制當前shell sigsegv core mp, 當前shell會退出
$kill -SIGSEGV $$

core file 已經產生
$/var/tmp/cores>ls
core

用gdb列出program name
$gdb
GNU gdb (GDB) 7.5-ubuntu
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show ing"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
(gdb) core-file ./core
[New LWP 1808]
Core was generated by `/usr/local/bin/ksh'.
Program terminated with signal 11, Segmentation fault.
#0 0x00007f654584d707 in ?? ()
(gdb) quit

用知道的program名字來load core, 並列出stack
$gdb /usr/local/bin/ksh core
GNU gdb (GDB) 7.5-ubuntu
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show ing"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/local/bin/ksh...(no debugging symbols found)...done.
[New LWP 1808]

warning: Can't read pathname for load map: Input/output error.
Core was generated by `/usr/local/bin/ksh'.
Program terminated with signal 11, Segmentation fault.
#0 0x00007f654584d707 in kill () at ../sysdeps/unix/syscall-template.S:82
82 ../sysdeps/unix/syscall-template.S: No such file or directory.
(gdb) bt
#0 0x00007f654584d707 in kill () at ../sysdeps/unix/syscall-template.S:82
#1 0x000000000043244c in job_kill ()
#2 0x00000000004322ed in job_walk ()
#3 0x0000000000474ad9 in b_kill ()
#4 0x000000000045d871 in sh_exec ()
#5 0x0000000000412b16 in exfile ()
#6 0x00000000004135ea in sh_main ()
#7 0x0000000000411f7a in main ()

3. linux的dev下的core可以刪除嗎

可以,Core文件其實就是內存的映像,當程序崩潰時,存儲內存的相應信息,主用用於對程序進行調試。當程序崩潰時便會產生core文件,其實准確的應該說是core mp 文件

4. linux問題:可以在CoreLinux系統上直接部署php開發環境嗎

CoreLinux沒用過,可能核心組件少會影響php的運行。伺服器的話建議使用centos,redhat等成熟穩定的系統
php本身是跨平台的,各種平台都有編譯的版本,核心也是用C/C++編寫的。

所以linux系統基本都支持php核心,不過php有很多擴展包,有些甚至是php開發必備的,比如 gd(圖像處理),pdo(資料庫處理),ssl 等,會需要系統有額外的擴展包。如果corelinux對這些擴展包的需求包支持不好或安裝不方便,也會比較麻煩

5. linux core 文件 怎麼分析

Core,又稱之為Core Dump文件,是Unix/Linux操作系統的一種機制,對於線上服務而言,Core令人聞之色變,因為出Core的過程意味著服務暫時不能正常響應,需要恢復,並且隨著吐Core進程的內存空間越大,此過程可能持續很長一段時間(例如當進程佔用60G+以上內存時,完整Core文件需要15分鍾才能完全寫到磁碟上),這期間產生的流量損失,不可估量。
凡事皆有兩面性,OS在出Core的同時,雖然會終止掉當前進程,但是也會保留下第一手的現場數據,OS彷彿是一架被按下快門的相機,而照片就是產出的Core文件。裡面含有當進程被終止時內存、CPU寄存器等信息,可以供後續開發人員進行調試。

關於Core產生的原因很多,比如過去一些Unix的版本不支持現代Linux上這種GDB直接附著到進程上進行調試的機制,需要先向進程發送終止信號,然後用工具閱讀core文件。在Linux上,我們就可以使用kill向一個指定的進程發送信號或者使用gcore命令來使其主動出Core並退出。如果從淺層次的原因上來講,出Core意味著當前進程存在BUG,需要程序員修復。從深層次的原因上講,是當前進程觸犯了某些OS層級的保護機制,逼迫OS向當前進程發送諸如SIGSEGV(即signal 11)之類的信號, 例如訪問空指針或數組越界出Core,實際上是觸犯了OS的內存管理,訪問了非當前進程的內存空間,OS需要通過出Core來進行警示,這就好像一個人身體內存在病毒,免疫系統就會通過發熱來警示,並導致人體發燒是一個道理(有意思的是,並不是每次數組越界都會出Core,這和OS的內存管理中虛擬頁面分配大小和邊界有關,即使不出Core,也很有可能讀到臟數據,引起後續程序行為紊亂,這是一種很難追查的BUG)。
說了這些,似乎感覺Core很強勢,讓人感覺缺乏控制力,其實不然。控制Core產生的行為和方式,有兩個途徑:
1.修改/proc/sys/kernel/core_pattern文件,此文件用於控制Core文件產生的文件名,默認情況下,此文件內容只有一行內容:「core」,此文件支持定製,一般使用%配合不同的字元,這里羅列幾種:
%p 出Core進程的PID
%u 出Core進程的UID
%s 造成Core的signal號
%t 出Core的時間,從1970-01-0100:00:00開始的秒數
%e 出Core進程對應的可執行文件名

2.Ulimit –C命令,此命令可以顯示當前OS對於Core文件大小的限制,如果為0,則表示不允許產生Core文件。如果想進行修改,可以使用:
Ulimit –cn
其中n為數字,表示允許Core文件體積的最大值,單位為Kb,如果想設為無限大,可以執行:
Ulimit -cunlimited
產生了Core文件之後,就是如何查看Core文件,並確定問題所在,進行修復。為此,我們不妨先來看看Core文件的格式,多了解一些Core文件。

6. linux下的core文件是怎麼生成的

在linux平台下,設置core mp文件生成的方法: 1 )如何生成 coremp 文件 登陸 LINUX 伺服器,任意位置鍵入 echo "ulimit -c 1024" >> /etc/profile 退出 LINUX 重新登陸 LINUX 鍵入 ulimit -c 如果顯示 1024 那麼說明 coremp 已經被開啟。...

7. 怎麼查看Linux的core開關,以及如何打開和關閉

mp文件可以在程序crash時,方便我們查看程序crash的地方和上下文信息。在window下,要能生成mp文件,需要自己編寫相應的代碼。不過現在網上可以找到相應的代碼,只要把它下載後然後加到自己的工程中去,就可以了!在linux下面就簡單的許多。只要打開相應的開關,linux會自動在程序crash時生成相應的core文件。這個文件和window下的mp文件類似。
下面是簡單的一些步驟:
1.查看當前是否已經打開了此開關
通過命令:ulimit -c 如果輸出為 0
,則代表沒有打開。如果為unlimited則已經打開了,就沒必要在做打開。
2.通過命令打開
ulimit -c unlimited .然後通過步驟1,可以監測是否打開成功。
3.如果你要取消,很簡單:ulimit -c 0 就可以了
通過上面的命令修改後,一般都只是對當前會話起作用,當你下次重新登錄後,還是要重新輸入上面的命令,所以很麻煩。我們可以把通過修改
/etc/profile文件 來使系統每次自動打開。步驟如下:
1.首先打開/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*的文件。然後我們可以
gdb core。* 程序 進行調試。

8. linux上的core文件,麻煩牛人們幫忙解釋下是什麼原因

關於UNIX/Linux系統下面產生的core文件,根據我使用系統的經驗,通常是由於自己在編寫程序的過程中,由於自己的疏忽,使自己編寫的程序產生了數組越界、或者是程序中的指針指向了一塊無效的內存區域,產生的內存溢出錯誤。這一點在C語言編程過程中尤為明顯,即:雖然定義了一個指針變數,但是未對該變數進行初始化、且判斷該指針是否為空指針,而在後面的程序中又使用到了該變數,這時候肯定就會產生內存溢出錯誤。通常產生的提示信息就是:Segmentfault,CoreDumped!此時再一看自己當前工作的目錄下面,就會自動產生出一個文件名為core的文件,通常該文件佔得空間也是比較大的,至少好幾兆位元組。

9. linux core 怎麼打開

core文件是由應用程序收到系統信號後崩潰產生的,該文件中記錄了程序崩潰的原因(例如收到那種信號),調用堆棧和崩潰時的內存及變數值等等的信息。
打開core文件與編譯時使用的編譯器有關,但絕大多數linux程序是使用gcc編譯器編譯的,因此可使用對應gdb調試器打開,命令格式如下:
$ gdb 應用程序文件名 core文件名
舉例:
$ gdb /usr/bin/gedit ~/core ------ 查看由gedit崩潰產生的core文件
(gdb) bt ------ 或者backtrace, 查看程序運行到當前位置之前所有的堆棧幀情況)
(gdb) quit ------ 退出

如果不知道core文件由哪個文件產生的,可使用file命令顯示
$ file core

10. LINUX core怎麼設置

放裡面,記得在CMOS裡面設置成光碟機啟動喲,然後就進入第一個畫面了(由於LINUX安裝時無法抓圖,所以我用數碼相機拍的,圖片質量很差,請見諒。)

,版本不是問題,所有的LINUX安裝差不多,出現幾排字,上面是要你選擇圖形界面安裝,或是文字界面安裝,屏幕最下面有個BOOT:的提示符,在這里直接按回車就是圖形安裝,輸入TEXT然後回車就是文字安裝,建議你使用圖形的界面進行安裝,如果直接能夠進入圖形安裝,說明你的顯卡配置不成問題了,文字的其實也差不多,不同的是一個用滑鼠一個用鍵盤而已,由於LINUX的版本很多,但是安裝方法幾乎相同,所以我這里就以REDHAT7。1的安裝為例,向大家描述整個安裝過程,如果你的是紅旗,藍點,或其他版本,中文的版本,也可以對照進行。
進入圖形界面以後,先是語言選擇畫面,默認是英語,(靠,redhat這真他NN的不象話,就是沒有Chinese選)

然後我們看看,是鍵盤設置,如果你的鍵盤不是很特別,一般就保持默認設置,直接選NEXT

滑鼠設置,選擇你的滑鼠,PS2介面,串口,兩鍵,三鍵,如果不確定就用默認的,直接選NEXT

然後我們看到一段歡迎的畫面(Welcome to redhat linux),這里無關緊要,直接選NEXT

好,到了安裝選擇的一步,這里分為兩大部分,一是安裝,二是升級,安裝部分又可選擇工作站,伺服器,筆記本電腦,和自定義安裝,如果是第一次裝,請先試試,工作站安裝。

然後到了分區的選項,有兩個選擇,一是用Disk Druid手動分區,二是用fdisk手動分區。我們選上面的

到了這里,我們就可以看到你的硬碟所有的分區,這里我們要記得一點,就是用筆記本抄下每行的第二個數據,如:hda1,hda5,等等,這是你的硬碟上的分區在LINUX下名字,記下以後,通過修改/etc/fstab文件,可以實現在LINUX下面訪問WINDWOS的分區。(此方法在後面詳細再講)

我們在LINUX的主分區上面雙擊滑鼠左鍵,就彈出一個對話框,我們輸入一個/以後回車就可以了

這一步我們直接選NEXT,等安裝完以後就可以直接用LINUX啟動計算機。

網路設置,如果你是撥號的話,就直接選NEXT,如果你是通過區域網或是寬頻上網,就需要填寫IP和網關。

網路服務選擇,我們用暫時默認的

支持語言選擇,如果你英語好,就直接選NEXT,如果你想嘗試漢化REDHAT,那麼最好選上中文,如果找不到,就全選。

時區選擇,這里點一下中國地圖上的城市就可以了

口令設置,輸入你的口令,還可以添加用戶,可以添加可以不添加,口令不輸入的話為空。

自定義軟體,這里把三個空格都打上鉤,然後選NEXT,這樣我們就安裝了2種圖形,GNOME,KDE,以及游戲,如果你想裝別的軟體,就選中最下面的select indivial packages,那麼就可以自定義安裝,

裡面軟體很多,我不知道怎麼選,所以就全選中了,以後可以慢慢試,不過這里全裝的話,一共有2G多喲

然後是顯卡設置,在這里找到自己的顯卡型號

顯示器設置

這里是設置進入XWINDOWS以後的解析度,以及文字方式登陸和圖形方式登陸的選擇

然後一直NEXT就可以了,REDHAT7。1的安裝也就到此告一段落了,慢慢等進度條加滿

創建啟動盤,直接選NEXT(記得放軟盤喲),不想創建就選中Skip boot disk creation,再選下一步。

然後連選NEXT就結束了
參考資料:
另外,團IDC網上有許多產品團購,便宜有口碑

閱讀全文

與corelinux相關的資料

熱點內容
centos開機命令行模式 瀏覽:695
遍歷所有listpython 瀏覽:660
力控加密文件夾 瀏覽:515
如何更改移動伺服器密碼 瀏覽:686
蘋果8p手機加密 瀏覽:749
ipad建文件夾怎麼弄 瀏覽:833
iphone13對wap3加密 瀏覽:555
pdf文件打開失敗 瀏覽:913
dubbo怎麼調用不同伺服器介面 瀏覽:40
全能解壓王app歷史版本 瀏覽:75
優先隊列與拓撲排序演算法 瀏覽:281
pdf轉換formacbook 瀏覽:871
pdf文件內容怎麼編輯 瀏覽:48
134壓縮機排氣溫度多少 瀏覽:256
unity等待編譯後 瀏覽:806
黑鯊手機鎖屏視頻在哪個文件夾 瀏覽:781
wow地圖解壓後怎麼壓縮 瀏覽:823
有pdf卻打不開 瀏覽:460
七星彩軟體app怎麼下載 瀏覽:217
32單片機的重映射哪裡改 瀏覽:816