Debugging
診斷問題的最佳實踐
作為 Linux/Unix 使用者,我們經常遇到問題。經過長時間的問題解決,我們培養了調試技能。
現在,在嘗試調試一般的 unix 問題時,什麼是好的原則、方法或最佳實踐?
作為普通使用者,我應該擁有哪些工具來更輕鬆地找到問題的原因?
方法將取決於問題的類型。
總的來說,Eric S. Raymond 和 Rick Moen 的“如何以聰明的方式提問”有時是一個有用的建議,可以幫助您專注於問題並檢查您是否考慮了問題的重要部分。
您在調試期間的第一個資訊來源是您的系統/應用程序寫入的日誌文件。它們的共同點是您的終端或
/var/log/
. 許多應用程序支持不同類型的日誌級別,如果您找不到任何可用的消息,您應該增加這些級別。通常有一個-v
詳細的開關來獲取更多消息。還是沒什麼用?檢查您的配置文件、應用程序所需文件的權限,也許您必須更改系統記錄器的配置,例如
/etc/syslog-ng.conf
.如果您有錯誤消息,Google搜尋通常會導致留言板條目或 usenet 文章討論其背後的問題。您很可能在那裡找到解決方案。項目使用者郵件列表、留言板和 IRC 頻道也很有幫助。
有時應用程序在沒有任何消息的情況下崩潰。除了閱讀和修改程式碼之外,發現應用程序流程的一個很好的工具是
strace
.該工具將跟踪系統呼叫和信號。當應用程序擷取到錯誤時,您仍然可以在 systrace 中發現問題。
另一種方法是使用
gdb
. 您應該是高級使用者並且知道該怎麼做才能使用它。