技能 debugging-strategies
📦

debugging-strategies

安全

應用系統化除錯策略

除錯複雜的軟體問題通常感覺像是隨機且令人沮丧的。本技能提供系統化的除錯技術、分析工具和根本原因分析方法,將故障排除轉變為一個有條不紊的過程。

支援: Claude Codex Code(CC)
📊 69 充足
1

下載技能 ZIP

2

在 Claude 中上傳

前往 設定 → 功能 → 技能 → 上傳技能

3

開啟並開始使用

測試它

正在使用「debugging-strategies」。 我的 Node.js API 間歇性返回 500 錯誤。錯誤訊息說「無法讀取未定義的屬性」,但我找不到發生位置。

預期結果:

讓我應用系統化除錯來找到這個未定義屬性問題。

## 步驟 1:重現並觀察
- 錯誤何時發生?總是還是隨機?
- 哪個 API 端點觸發它?
- 發送了什麼請求參數?

## 步驟 2:收集資訊
1. 在可能的崩潰點之前加入策略性日誌記錄:
```javascript
console.log('Order data:', JSON.stringify(order, null, 2));
```
2. 檢查哪個屬性可能是未定義的:
```javascript
console.log('Items:', order?.items);
console.log('User:', order?.user?.name);
```

## 步驟 3:假設
假設:錯誤可能發生在:
- 某些請求類型的 order.items 是未定義的
- 訪客使用者的 order.user 為 null

## 步驟 4:測試並驗證
加入空值檢查並使用範例請求驗證:
```javascript
const items = order?.items ?? [];
const userName = order?.user?.name ?? 'Guest';
```

你想讓我幫你實作這個修復嗎?

正在使用「debugging-strategies」。 幫我除錯 React 應用程式中的記憶體洩漏。

預期結果:

讓我系統化地引導你除錯 React 記憶體洩漏。

## 重現階段
1. 打開 Chrome DevTools > Memory 分頁
2. 拍攝堆積快照(之前)
3. 執行懷疑會造成洩漏的動作 10-20 次
4. 拍攝另一個快照(之後)
5. 比較快照以識別保留的物件

## 常見 React 記憶體洩漏模式
1. 未取消訂閱的事件監聽器
2. 在 useEffect 清理中未清除的計時器 (setInterval)
3. 保留元件範圍參考的閉包
4. 無限增長的全域快取

## 快速除錯步驟
```javascript
useEffect(() => {
const timer = setInterval(() => {
// ...
}, 1000);

// 清理函數 - 對於防止洩漏至關重要
return () => {
clearInterval(timer);
// 移除任何訂閱
};
}, []);
```

你看到什麼症狀?DevTools 中記憶體高還是實際當機?

安全審計

安全
v5 • 1/21/2026

Static analysis detected 54 potential issues, all confirmed as false positives. The 'scripts' patterns are Go import statements in code examples. 'External_commands' are markdown backticks used for code formatting. 'Weak cryptographic algorithm' flags are triggered by Go standard library package names (crypto/pprof). 'Network' URLs are GitHub source URLs and localhost debugging endpoints. All findings are legitimate documentation content with no security concerns.

2
已掃描檔案
1,137
分析行數
0
發現項
5
審計總數
未發現安全問題
審計者: claude 查看審計歷史 →

品質評分

38
架構
100
可維護性
87
內容
21
社群
100
安全
87
規範符合性

你能建構什麼

修復難以捉摸的生產環境臭蟲

使用系統化除錯技術,透過日誌記錄、堆疊追蹤分析和差異除錯來追蹤生產環境中難以重現的問題。

優化緩慢的應用程式效能

使用分析工具和技術來識別效能瓶頸、記憶體洩漏和低效的程式碼模式,涵蓋 JavaScript、Python 和 Go 應用程式。

學習結構化除錯方法

掌握用於除錯的科學方法、橡皮鴨除錯和系統化問題隔離,成為更有效的故障排除專家。

試試這些提示

除錯特定錯誤
我在應程式中看到這個錯誤:[插入錯誤訊息和堆疊追蹤]。使用系統化除錯技術幫助我識別根本原因。逐步執行科學方法:觀察、假設、實驗、分析。
分析效能瓶頸
我的 [應用程式類型] 應用程式執行緩慢。幫助我使用分析工具識別瓶頸。包括使用 [Chrome DevTools / cProfile / pprof] 逐步說明,以找出時間花費在哪裡。
除錯競爭條件
我有一個間歇性的臭蟲,只會有時發生,似乎與非同步操作有關。引導我使用追蹤日誌記錄和時序分析來除錯競爭條件。
使用 git bisect 找出迴歸問題
臭蟲出現在可運作的版本 [版本 A] 和目前版本 [版本 B] 之間。引導我使用 git bisect 找出引入迴歸問題的确切提交。

最佳實務

  • 在嘗試修復之前先一致地重現臭蟲。沒有一致的重現,就無法驗證你的解決方案。
  • 透過移除不相關的程式碼來隔離問題。建立一個展示問題的最小重現案例。
  • 使用除錯器,而不僅僅是 console.log 陳述式。中斷點讓你可以在任何時候檢查程式狀態。

避免

  • 一次做多個變更。一次只變更一個東西,以了解到底是什麼修復了問題。
  • 忽略錯誤訊息或不閱讀完整的堆疊追蹤。錯誤訊息和堆疊追蹤包含有價值的線索。
  • 假設臭蟲在別人的程式碼中。大多數臭蟲是你自己最近的變更造成的,不是第三方庫。

常見問題

什麼是除錯的科學方法?
除錯的科學方法包括:(1) 觀察實際行為和錯誤,(2) 形成關於什麼造成它的假設,(3) 設計並執行測試假設的實驗,(4) 分析結果是證明還是反駁你的理論,(5) 用新的假設重複,直到你找到根本原因。
如何安全地除錯生產環境問題?
永遠不要直接修改生產環境程式碼。相反:(1) 加入日誌記錄以擷取更多資訊,(2) 使用功能旗標測試修復,(3) 先部署到預備環境驗證,(4) 使用 Sentry 等錯誤追蹤工具,(5) 本地使用匿名化的生產環境資料。
什麼是二元搜尋除錯?
二元搜尋除錯透過反覆將搜尋空間減半來縮小問題程式碼的範圍。註解掉一半的程式碼,看看臭蟲是否仍然發生。繼續縮小範圍,直到你識別出造成問題的确切行或區段。
如何除錯間歇性臭蟲?
間歇性臭蟲需要廣泛的日誌記錄和狀態擷取。加入顯示時序、輸入資料和狀態轉換的詳細日誌記錄。尋找臭蟲發生時的模式。檢查非同步程式碼中的競爭條件和時序相依性。
什麼是橡皮鴨除錯?
橡皮鴨除錯是向橡皮鴨或同事大聲解釋你的程式碼和問題,逐行進行。闡述問題的行為通常會揭示問題。它迫使你放慢速度並思考每個步驟。
如何使用 git bisect 找出臭蟲是何時引入的?
git bisect 自動化搜尋引入臭蟲的提交。執行 'git bisect start',使用 'git bisect good <commit>' 標記已知的良好提交,使用 'git bisect bad <commit>' 標記已知的錯誤提交。Git 會 checkout 中間的提交讓你測試。標記每個為 'good' 或 'bad',直到它識別出确切的提交。

開發者詳情

檔案結構

📄 SKILL.md