我有一個用C語言編寫的Linux腳本,部署在遠程服務器上,多個客戶端可以連接到該腳本。由於某種原因,腳本崩潰了,當我嘗試重新啓動時,我遇到了分段錯誤。是否有任何方法可以在服務器端檢查停止腳本啓動的操作,並引發分段錯誤錯誤。檢查Linux服務器上的分段錯誤的原因
回答
通過使核心開始了轉儲:
$ ulimit -c unlimited
現在運行腳本,直到它出現segfaults。這將在您的工作目錄中創建一個核心轉儲文件。
接下來,使用GDB(或其中的任何前端)進行調試(請注意,您可以將文件複製到本地機器上,如果你不能在服務器上調試):
$ gdb -c <core_file>
別別忘了添加符號文件:
GDB> file my-prog
如果很容易重現該問題,並提供您可以直接在服務器上調試(使用SSH或這樣的),你可以簡單地潛水,並以啓動該進程調試器附件:
$ gdb my-prog
什麼是符號文件,它的用途是什麼? –
@Asusgates這是一個GDB用來知道程序引用的某些內存地址的函數,變量等名稱的文件。 –
@Asusgates也許同樣重要的是要提到最好用'-g' GCC標誌編譯你的代碼。 –
- 1. 分段錯誤的原因
- 2. 分段錯誤的原因?
- 3. Linux服務器上的內部服務器錯誤(500)和PHP'max_execution_time
- 4. 分段錯誤 - 什麼原因
- 5. 分段錯誤 - 未知原因
- 6. 註釋掉Printf原因分段錯誤
- 7. HTTP錯誤500.19 - 內部服務器錯誤 - 原因是什麼?
- 8. 邏輯錯誤:無法確定分段錯誤的原因
- 9. LDAP中「服務器不可操作」錯誤的可能原因
- 10. SQL服務器插入到原因的錯誤515
- 11. 鏈接服務器錯誤的未知原因
- 12. 覆蓋內容類型的原因內部服務器錯誤
- 13. 生產服務器上的致命錯誤,分段是好的
- 14. Linux上的C++分段錯誤
- 15. 在Linux上接受()的分段錯誤
- 16. UDP服務器給出分段錯誤
- 17. [R閃亮服務器分段錯誤
- 18. Https服務器上的節點js分段錯誤
- 19. glXGetCurrentDisplay()分段錯誤(Linux)的
- 20. Linux中的分段錯誤
- 21. 帶分段的客戶端服務器代碼錯誤錯誤
- 22. 在appfog上,如何找到500內部服務器錯誤的原因?
- 23. 因爲我不知道的原因獲取內部服務器錯誤
- 24. 不明原因的段錯誤在Python
- 25. MySQL的錯誤,設置第一分貝(phpMyAdmin的,Linux服務器)
- 26. 無法找到原因Axis2 + Rampart服務器內部錯誤500
- 27. 區域服務器死機的原因
- 28. 檢查的緩慢的加載時間的原因不同服務器
- 29. 遠程Linux服務器上的預定檢查文件
- 30. 檢查是否在Linux服務器上運行的jar文件
允許服務器創建[*核心轉儲*](https://en.wikipedia.org/wiki/Core_dump),然後將其複製並與調試器一起使用。 –