亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問何在Linux中生成分段錯誤的核心轉儲?

請問何在Linux中生成分段錯誤的核心轉儲?

一只名叫tom的貓 2019-08-02 12:02:28
如何在Linux中生成分段錯誤的核心轉儲?我在Linux中有一個進程有一個分割錯誤。當核心轉儲失敗時,我如何告訴它生成核心轉儲?
查看完整描述

3 回答

?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

這取決于您正在使用的shell。如果您正在使用bash,那么uLimited命令控制與程序執行有關的幾個設置,例如是否應該轉儲核心。如果你打字

ulimit -c unlimited

然后,這將告訴bash,它的程序可以轉儲任何大小的核心。您可以指定一個大小,如52m,而不是無限,如果你想,但在實踐中,這不應該是必要的,因為核心文件的大小可能永遠不會是你的問題。

在tcsh中,您可以鍵入

limit coredumpsize unlimited




查看完整回答
反對 回復 2019-08-03
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

如前所述,這里提出的真正問題是如何在沒有啟用核心轉儲的系統上啟用核心轉儲。這個問題在這里得到回答。

如果您來這里希望學習如何為掛起進程生成核心轉儲,答案是

gcore <pid>

如果gcore在您的系統中不可用,那么

kill -ABRT <pid>

不要使用殺害-SEGV,因為這通常會調用信號處理程序,從而使診斷卡住過程更加困難。



查看完整回答
反對 回復 2019-08-03
?
森林海

TA貢獻2011條經驗 獲得超2個贊

若要檢查在何處生成核心轉儲,請運行:

sysctl kernel.core_pattern

或:

cat /proc/sys/kernel/core_pattern

哪里%e是進程名和%t系統時間。你可以在/etc/sysctl.conf重裝sysctl -p.

如果沒有生成核心文件(通過以下方法進行測試):sleep 10 &killall -SIGSEGV sleep),通過以下方式檢查限制:ulimit -a.

如果您的核心文件大小有限,請運行:

ulimit -c unlimited

讓它不受限制。

然后再次測試,如果核心轉儲成功,您將在分段錯誤指示之后看到“(核心轉儲)”,如下所示:

分割故障:11(核傾棄)

另見:內核轉儲-但是核心文件不在當前目錄中?


烏本圖

在Ubuntu中,核心轉儲由apport并且可以定位在/var/crash/..但是,在穩定版本中,默認情況下會禁用它。

欲知更多詳情,請參閱:我在哪里找到Ubuntu的核心轉儲?.

MacOS

關于MacOS,見:如何在MacOSX中生成核心轉儲?



查看完整回答
反對 回復 2019-08-03
  • 3 回答
  • 0 關注
  • 697 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號