遠離工作站的除錯困境#
離開你舒適的工作站除錯會大幅降低生產力。常見需要「外出除錯」的場景包括:
- 手機應用程式
- 嵌入式裝置
- 只在客戶電腦上出現的問題
- 資料中心的危機處理
使用 Device Emulator#
對於手機應用和某些嵌入式裝置,可以使用 device emulator 在 PC 上排查問題。雖然模擬器在除錯功能上通常有限(主要是增強的 logging),但你可以:
- 方便地存取原始碼和編輯器
- 快速實驗程式碼修改並查看結果
- 不需要部署到實際裝置
建立 Software Shim#
更強大的方法是建立 shim——讓你在工作站上執行應用關鍵部分的替代介面。利用 unit tests 和 mock objects,排除 UI 部分,保留需要除錯的演算法邏輯。
例如一個從社群網路匯入聯絡人照片的手機應用:
- 將社群網路互動和聯絡人匹配的邏輯抽取為獨立的 command-line 工具
- 使用簡單的檔案 I/O 作為輸入輸出
- 在 PC 上用強大的 debugger 逐步執行
- 除錯完成後整合回應用,但保留獨立執行的能力以備未來使用
安排遠端存取客戶電腦#
在危機發生之前就安排好遠端存取——這通常需要管理員權限和一些技術準備。
- 許多 OS 內建遠端桌面功能,也可使用 TeamViewer 等專用工具
- 考慮在客戶電腦上預先部署除錯工具(application viewer、execution tracer)
- 如果只能選一個除錯工具帶到第三方電腦,作者推薦 Unix 的
strace或truss
資料中心和遠端伺服器#
現代雲端服務提供 web 介面和 console access。但如果伺服器在難以到達的機房中:
- 如果問題發生在網路連線建立之前,需要透過實體螢幕和鍵盤存取
- 解決方案:安裝 KVM over IP 裝置,透過 IP 網路遠端存取伺服器的鍵盤、顯示和滑鼠
- 提前安裝、設定和測試 KVM over IP 裝置
重點回顧#
- 設定 device emulator,讓你能用工作站的螢幕和鍵盤排查問題
- 使用 shim 搭配工作站的原生工具來除錯嵌入式程式碼
- 安排對客戶電腦的遠端存取
- 設定 KVM over IP 裝置來除錯遠端伺服器