遠離工作站的除錯困境#

離開你舒適的工作站除錯會大幅降低生產力。常見需要「外出除錯」的場景包括:

  • 手機應用程式
  • 嵌入式裝置
  • 只在客戶電腦上出現的問題
  • 資料中心的危機處理

使用 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 的 stracetruss

資料中心和遠端伺服器#

現代雲端服務提供 web 介面和 console access。但如果伺服器在難以到達的機房中:

  • 如果問題發生在網路連線建立之前,需要透過實體螢幕和鍵盤存取
  • 解決方案:安裝 KVM over IP 裝置,透過 IP 網路遠端存取伺服器的鍵盤、顯示和滑鼠
  • 提前安裝、設定和測試 KVM over IP 裝置

重點回顧#

  • 設定 device emulator,讓你能用工作站的螢幕和鍵盤排查問題
  • 使用 shim 搭配工作站的原生工具來除錯嵌入式程式碼
  • 安排對客戶電腦的遠端存取
  • 設定 KVM over IP 裝置來除錯遠端伺服器