Linux By Sophia

Strace 神器:在沒有原始碼的情況下 Debug

系統呼叫追蹤

當程式莫名 Crash 或卡住,且 Log 沒有任何錯誤訊息時,strace 是最後的救星。它能記錄進程所有的 System Calls (如 open, read, write, connect)。

實戰場景

  • 設定檔讀取錯誤strace -e open -p <pid> 可以看到程式到底嘗試讀取哪個路徑的設定檔,常發現是因為路徑權限或拼寫錯誤。
  • 網路連線卡住strace -e connect,poll,select 可以分析程式是否卡在 DNS 解析或 TCP 連線逾時。

雖然 strace 會拖慢執行速度,但在除錯階段其價值無可取代。