国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

Linux下core文件的使用方法詳解

2024-09-01 13:54:06
字體:
來源:轉載
供稿:網友

前言

有時候程序會異常退出而不帶任何日志,此時就可以使用 code 文件進行分析,它會記錄程序運行的內存,寄存器,堆棧指針等信息

什么是core文件

通常在 Linux 下遇到程序異常退出或者中止,我們都會使用 core 文件進行分析,其中包含了程序運行時的內存,寄存器,堆棧指針等信息,格式為 ELF ,可以理解是程序工作當前狀態轉儲成一個文件,通過工具分析這個文件,我們可以定位到程序異常退出或者終止時相應的堆棧調用等信息,為解決問題提供幫助。

使用core文件調試

生成方法

查看當前 core 文件的狀態

$ ulimit -a...-c: core file size (blocks)   0 # 關閉狀態...

打開生成開關

ulimit -c unlimitedulimit -a...-c: core file size (blocks)   unlimited...

對 core 文件的大小進行限制,單位為 blocks ,一般 1 block=512 bytes ,設置太小可能導致不會生成文件

$ ulimit -c 1024$ ulimit -a...-c: core file size (blocks)   1024...

關閉生成開關

ulimit -c 0ulimit -a...-c: core file size (blocks)   0...

上面對 core 文件的操作僅對當前生效,若需要永久生效,則要將相應操作寫入 /etc/profile

生成路徑

core 文件默認生成在程序的工作目錄,可以對生成路徑進行設置,需要保證對對應目錄有足夠空間并具有寫權限

echo /MyCoreDumpDir/core.%e.%p > /proc/sys/kernel/core_pattern

其中命名使用的參數列表

%p - insert pid into filename # 添加 pid %u - insert current uid into filename # 添加當前 uid %g - insert current gid into filename # 添加當前 gid %s - insert signal that caused the coredump into the filename # 添加導致產生 core 的信號 %t - insert UNIX time that the coredump occurred into filename # 添加 core 文件生成時的 unix 時間 %h - insert hostname where the coredump happened into filename # 添加主機名 %e - insert coredumping executable name into filename # 添加命令名

/proc/sys/kernel/core_uses_pid 這個文件的值若為1,則無論時候配置 %p ,最后生成的 core 文件都會添加 pid

調試方法

可以使用 gdb 對 core 文件進行調試,編譯是需要帶上 -g 選項

$ gdb a.out...(gdb) core-file core...(gdb) bt ...

如需要在 PC 上調試嵌入式設備產生的 core 文件,則需要選取相應平臺的 gdb 工具,并在進入 gdb 后設置符號文件的位置

$ xxx-xxx-gdb a.out...(gdb) solib-search-path xxx.so:xxx.so...(gdb) core-file core...(gdb) bt...

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿合奇县| 资兴市| 灵寿县| 侯马市| 思茅市| 民勤县| 泰兴市| 金川县| 鹤庆县| 宿州市| 固始县| 新竹县| 泉州市| 辽中县| 南皮县| 手机| 黔西县| 界首市| 宁蒗| 鄂州市| 平顺县| 崇信县| 梅河口市| 外汇| 仙游县| 招远市| 大足县| 民勤县| 台湾省| 西安市| 佳木斯市| 正蓝旗| 高密市| 兴安盟| 丰顺县| 天峨县| 海淀区| 辽源市| 罗源县| 瓦房店市| 沾化县|