oracle導入dmp文件步驟,linux怎么導出dmp文件怎么打開,Linux開發實用工具之詳解coredump-dmp文件怎么打開...

 2023-10-07 阅读 28 评论 0

摘要:在開發Linux的程序時,例如游戲服務器,有時會異常終止或者崩潰,此時沒有任何日志,也不能定位到崩潰代碼的位置,有些老手會告訴你去查看coredump,那什么是coredump, 又怎么查看呢?這里就跟大家講一講什么是coredumpcoredump是

3830c4136a081bae068a301f85963b22.png

在開發Linux的程序時,例如游戲服務器,有時會異常終止或者崩潰,此時沒有任何日志,也不能定位到崩潰代碼的位置,有些老手會告訴你去查看coredump,那什么是coredump, 又怎么查看呢?這里就跟大家講一講

什么是coredump

coredump是程序異常終止或崩潰時,操作系統將當時內存、寄存器、堆棧等數據記錄下,并保存在一個文件中,可以簡單理解成是一個快照文件

開啟coredump功能

如果不知道是否開啟coredump功能,可以在命令行中輸入:ulimit -c, 如果返回的結果是0,表示沒有開啟coredump。

oracle導入dmp文件步驟、開啟coredump的方法,可以輸入命令: ulimit -c size 開啟,size是文件大小,以blocks為單位,1個block為512bytes, 也可以設置成unlimited,表示不限制coredump文件的大小。

這種方法,只會在當前會話生效,可以將 ulimit 的命令加到 /etc/profile 中修改所有用戶的環境變量。

還可以修改 /etc/security/limits.conf 文件 和 在程序中使用 setrlimit 函數來設置,筆者沒有具體使用,這里就不詳細介紹

修改coredump的保存路徑

默認情況下,生成的coredump保存在可執行程序的當前目錄下, 文件名為core.

有時候程序可能會反復崩潰,這樣上次產生的coredump文件會被覆蓋掉,這種情況,可以通過修改coredump的文件名和路徑來解決,具體方法如下:修改 /proc/sys/kernel/core_uses_pid 文件,將內容改為1. 可以使用core文件名自動加上pid, 此時core文件名將變成core.pid, pid為進程的PID

oracle怎么導入dmp文件。修改 /proc/sys/kernel/core_pattern 文件,例如內容修改為:/tmp/core.e%.%p.%t , 即表示將core文件保存到 /tmp目錄,文件名為:core.可執行程序名稱.進程PID.時間戳

以下為文件名參數列表:%p - 進程的pid

%u - 當前的uid

%g - 當前的gid

%s - 產生coredump的信號

%t - 產生coredump的時間戳

oracle dump導入導出?%h - 主機名

%e - 可執行文件的名稱

查看coredump文件

查看coredump文件有很多工具,這里簡單講一下使用gdb查看

例如當程序 cli發生崩潰,產生coredump文件為core,可以使用下面的命令查看gdb -c ./core cli

然后輸入bt full, 就可以查看到詳細的調用棧,這樣就可以根據顯示的信息,找到崩潰的地方。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/132407.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息