我想知道如何在Ubuntu中生成核心轉儲文件。我使用Ubuntu 8.04.1和gcc編譯器4.2.3。我寫了一個簡單的C程序來生成核心轉儲。我已經編譯了程序 - gcc -g badpointer.c。當我運行程序時,它給出了分段錯誤,但是沒有產生核心轉儲。我還需要做些什麼來生成核心轉儲文件?如何在Ubuntu中生成核心轉儲文件
18
A
回答
31
檢查輸出ulimit -c
,如果輸出0,這就是爲什麼你沒有核心轉儲。
使用
ulimit -c unlimited
允許核心創作(也許一個真正的大小限制取代unlimited
更安全)。
0
設置最大核心轉儲大小爲ulimit -c
大小。
32
通過激活你的核心轉儲:
ulimit -c unlimited
同時檢查:
$ sysctl kernel.core_pattern
,看看你的轉儲創建(%E會的進程名,並%T將系統時間)。
您可以在/etc/sysctl.conf中將其更改,然後通過sysctl -p
重新加載。
您可以通過測試:
sleep 10 &
killall -SIGSEGV sleep
如果核心傾銷成功,你會看到後分段故障指示「(核心轉儲)」。
參見:
How to generate a stacktrace when my gcc C++ app crashes
Ubuntu的
如果你已經Ubuntu的,由apport
在/var/crash
創建了轉儲,但在不同的格式(編輯文件看見)。
請閱讀更多:
https://wiki.ubuntu.com/Apport
OS X
在OS X,你的崩潰轉儲自動Crash Reporter在回溯的形式創建的。 通過執行Console並轉到「用戶診斷報告」部分(位於「診斷和使用信息」組下)或您可以在~/Library/Logs/DiagnosticReports
中找到這些崩潰文件。
實際的核心文件在/cores
中生成。
相關問題
- 1. 如何在Linux中生成核心轉儲文件?
- 2. 未生成核心轉儲
- 3. 如何在使用GDB生成核心轉儲文件時限制核心轉儲文件的大小
- 4. 在android中生成核心轉儲
- 5. 如何讓nscd生成核心轉儲文件?
- 6. 誰生成核心轉儲文件?內核還是glibc?
- 7. 核心轉儲文件不產生
- 8. Erlang:如何禁用「崩潰轉儲」和「核心轉儲」生成?
- 9. 如何在centos中爲守護進程生成核心轉儲?
- 10. Eclipse霓虹燈:生成核心轉儲
- 11. 手動生成精靈核心轉儲
- 12. GDB +核心文件轉儲
- 13. 爲什麼生成核心轉儲文件?
- 14. 生成子進程的核心轉儲文件
- 15. 核心轉儲文件沒有生成分段錯誤
- 16. GDB +另一個編譯器生成的核心轉儲文件
- 17. Ubuntu上的段錯誤(核心轉儲)
- 18. Ubuntu Semaphore:細分故障(核心轉儲)
- 19. 在Linux中爲小應用程序生成java核心轉儲日誌文件
- 20. 如何生成核心轉儲於CentOS(PHP-FPM)
- 21. 如何生成核心轉儲上AddressSanitizer錯誤
- 22. 如何使用Address Sanitizer和gcc7.1.0生成核心轉儲
- 23. 找出核心轉儲何時完成
- 24. 核心轉儲?
- 25. 如何合成xilinx核心生成器中生成的verilog核心?
- 26. 段故障(核心轉儲在c)中在Ubuntu
- 27. 核心轉儲文件格式
- 28. Apache的核心轉儲文件
- 29. php核心轉儲文件位置
- 30. 核心轉儲文件名截斷
用'睡眠10 killall -SIGSEGV sleep' HOWTO選項添加到repoen或保持封閉的應用程序? – 2017-05-27 16:20:33
@ e-info128一旦進程死於SIGSEGV信號(基本崩潰),您無法重新打開它。你需要重新開始一個新的進程,除非它是一個服務,所以它可以自動重新生成。 – kenorb 2017-05-29 15:32:04