日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 充電吧
[導讀]1、前言  一直在從事linux下后臺開發(fā),經常與core文件打交道。還記得剛開始從事linux下開發(fā)時,程序突然崩潰了,也沒有任何日志。我不知所措,同事叫我看看core,我卻問什么是core,怎么看

1、前言

  一直在從事linux下后臺開發(fā),經常與core文件打交道。還記得剛開始從事linux下開發(fā)時,程序突然崩潰了,也沒有任何日志。我不知所措,同事叫我看看core,我卻問什么是core,怎么看。同事鄙視的眼神,我依然在目。后來學會了從core文件中分析原因,通過gdb看出程序掛再哪里,分析前后的變量,找出問題的原因。當時就覺得很神奇,core文件是怎么產生的呢?難道系統(tǒng)會自動產生,可是我在自己的linux系統(tǒng)上面寫個非法程序測試,并沒有產生core問題?這又是怎么回事呢?今天在ngnix的源碼時候,發(fā)現可以在程序中設置core dump,又是怎么回事呢?在公司發(fā)現生成的core文件都帶有進程名稱、進程ID、和時間,這又是怎么做到的呢?今天帶著這些疑問來說說core文件是如何生成,如何配置。

2、基本概念

   當程序運行的過程中異常終止或崩潰,操作系統(tǒng)會將程序當時的內存狀態(tài)記錄下來,保存在一個文件中,這種行為就叫做Core Dump(中文有的翻譯成“核心轉儲”)。我們可以認為 core dump 是“內存快照”,但實際上,除了內存信息之外,還有些關鍵的程序運行狀態(tài)也會同時 dump 下來,例如寄存器信息(包括程序指針、棧指針等)、內存管理信息、其他處理器和操作系統(tǒng)狀態(tài)和信息。core dump 對于編程人員診斷和調試程序是非常有幫助的,因為對于有些程序錯誤是很難重現的,例如指針異常,而 core dump 文件可以再現程序出錯時的情景。

3、開啟core dump

  可以使用命令ulimit開啟,也可以在程序中通過setrlimit系統(tǒng)調用開啟。

程序中開啟core dump,通過如下API可以查看和設置RLIMIT_CORE

#includeint?getrlimit(int?resource,?struct?rlimit?*rlim);
int?setrlimit(int?resource,?const?struct?rlimit?*rlim);

參考程序如下所示:

#include#include#include#include#define?CORE_SIZE???1024?*?1024?*?500
int?main()
{
????struct?rlimit?rlmt;
????if?(getrlimit(RLIMIT_CORE,?&rlmt)?==?-1)?{
????????return?-1;?
????}???
????printf("Before?set?rlimit?CORE?dump?current?is:%d,?max?is:%dn",?(int)rlmt.rlim_cur,?(int)rlmt.rlim_max);

????rlmt.rlim_cur?=?(rlim_t)CORE_SIZE;
????rlmt.rlim_max??=?(rlim_t)CORE_SIZE;

????if?(setrlimit(RLIMIT_CORE,?&rlmt)?==?-1)?{
????????return?-1;?
????}???

????if?(getrlimit(RLIMIT_CORE,?&rlmt)?==?-1)?{
????????return?-1;?
????}???
????printf("After?set?rlimit?CORE?dump?current?is:%d,?max?is:%dn",?(int)rlmt.rlim_cur,?(int)rlmt.rlim_max);

????/*測試非法內存,產生core文件*/
????int?*ptr?=?NULL;
????*ptr?=?10;?

????return?0;
}

執(zhí)行./main, 生成的core文件如下所示

GDB調試core文件,查看程序掛在位置。當core dump 之后,使用命令?gdb program core?來查看 core 文件,其中 program 為可執(zhí)行程序名,core 為生成的 core 文件名。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉