最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于linux下core dump【總結(jié)】

 更新時間:2017年01月11日 10:30:42   投稿:jingxian  
下面小編就為大家?guī)硪黄P(guān)于linux下core dump【總結(jié)】。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1、前言

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

2、基本概念

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

3、開啟core dump

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

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

#include <sys/resource.h>

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

參考程序如下所示:

#include <unistd.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <stdio.h>
#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:%d\n", (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:%d\n", (int)rlmt.rlim_cur, (int)rlmt.rlim_max);

  /*測試非法內(nèi)存,產(chǎn)生core文件*/
  int *ptr = NULL;
  *ptr = 10; 

  return 0;
}

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

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

以上這篇關(guān)于linux下core dump【總結(jié)】就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Linux Windows下設(shè)置定時執(zhí)行任務(wù)的方法

    Linux Windows下設(shè)置定時執(zhí)行任務(wù)的方法

    這篇文章主要介紹了Linux、windows下 設(shè)置定時執(zhí)行任務(wù)的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Linux中搭建DNS域名解析服務(wù)器的詳細(xì)過程

    Linux中搭建DNS域名解析服務(wù)器的詳細(xì)過程

    在Linux中搭建DNS服務(wù)器涉及配置和運行一個軟件來提供DNS服務(wù),DNS是互聯(lián)網(wǎng)上的一種系統(tǒng),它將域名轉(zhuǎn)換為對應(yīng)的IP地址,使得用戶可以通過易記的域名訪問網(wǎng)站,而不是記憶一長串?dāng)?shù)字,本文給大家詳細(xì)介紹了Linux中搭建DNS域名解析服務(wù)器,需要的朋友可以參考下
    2024-03-03
  • 關(guān)于Linux的curl指令使用總結(jié)

    關(guān)于Linux的curl指令使用總結(jié)

    這篇文章主要介紹了關(guān)于Linux的curl指令使用總結(jié),具有很好的參考價值,希望對大家有所幫助。
    2023-04-04
  • Linux強制釋放占用端口以及Linux防火墻端口開放方法詳解

    Linux強制釋放占用端口以及Linux防火墻端口開放方法詳解

    在linux系統(tǒng)中安裝一些軟件時有時遇到端口被占用的情況,本文為大家介紹了遇到這種情況我們應(yīng)該怎么處理
    2018-10-10
  • Apache 配置多端口 多虛擬主機 局域網(wǎng)訪問示例

    Apache 配置多端口 多虛擬主機 局域網(wǎng)訪問示例

    這篇文章主要介紹了Apache如何配置多端口 多虛擬主機 局域網(wǎng)訪問,需要的朋友可以參考下
    2014-05-05
  • linux線程間的同步與互斥知識點總結(jié)

    linux線程間的同步與互斥知識點總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于linux線程間的同步與互斥的相關(guān)知識點,有興趣的朋友們學(xué)習(xí)下。
    2019-11-11
  • Linux?/etc/passwd詳解

    Linux?/etc/passwd詳解

    文章介紹了Linux系統(tǒng)/etc/passwd文件的結(jié)構(gòu)和字段含義,包括用戶名、密碼、UID、GID、描述性信息、主目錄和默認(rèn)Shell,UID和GID用于識別和分配權(quán)限,描述性信息提供用戶相關(guān)信息,主目錄定義用戶登錄后的操作權(quán)限,而默認(rèn)Shell則作為用戶與系統(tǒng)的交互橋梁
    2024-12-12
  • Linux 查看空間使用情況的實例詳解

    Linux 查看空間使用情況的實例詳解

    這篇文章主要介紹了Linux 查看空間使用情況的實例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握如何實現(xiàn),需要的朋友可以參考下
    2017-10-10
  • Linux文件刪除后空間未釋放問題詳解

    Linux文件刪除后空間未釋放問題詳解

    這篇文章主要給大家介紹了關(guān)于Linux文件刪除后空間未釋放問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Linux具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 讓apache顯示目錄列表的配置方法

    讓apache顯示目錄列表的配置方法

    本文教大家配置apache顯示目錄列表的方法,有需要的朋友不妨參考下
    2013-02-02

最新評論

孙吴县| 云安县| 依安县| 汉寿县| 蕲春县| 留坝县| 清涧县| 阳江市| 荣昌县| 仁化县| 保山市| 漳州市| 方山县| 江孜县| 刚察县| 洪泽县| 铜川市| 喀什市| 渝北区| 绥宁县| 巴里| 商丘市| 腾冲县| 南靖县| 永宁县| 磐安县| 遵义县| 陆丰市| 黔东| 青铜峡市| 四会市| 克拉玛依市| 宣汉县| 沁水县| 胶州市| 独山县| 游戏| 瑞安市| 湖南省| 巴林左旗| 仙桃市|