Initial commit
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
## Example: Complete Debugging Session
|
||||
|
||||
**Problem:** Test fails with "Symbol not found: _OBJC_CLASS_$_WKWebView"
|
||||
|
||||
**Phase 1: Investigation**
|
||||
|
||||
1. **Read error**: Symbol not found, linking issue
|
||||
2. **Internet research**:
|
||||
```
|
||||
Dispatch hyperpowers:internet-researcher:
|
||||
"Search for 'dyld Symbol not found _OBJC_CLASS_$_WKWebView'
|
||||
Focus on: Xcode linking, framework configuration, iOS deployment"
|
||||
|
||||
Results: Need to link WebKit framework in Xcode project
|
||||
```
|
||||
|
||||
3. **Debugger**: Not needed, linking happens before runtime
|
||||
|
||||
4. **Codebase investigation**:
|
||||
```
|
||||
Dispatch hyperpowers:codebase-investigator:
|
||||
"Find other code using WKWebView - how is WebKit linked?"
|
||||
|
||||
Results: Main app target has WebKit in frameworks, test target doesn't
|
||||
```
|
||||
|
||||
**Phase 2: Analysis**
|
||||
|
||||
Root cause: Test target doesn't link WebKit framework
|
||||
Evidence: Main target works, test target fails, Stack Overflow confirms
|
||||
|
||||
**Phase 3: Testing**
|
||||
|
||||
Hypothesis: Adding WebKit to test target will fix it
|
||||
|
||||
Minimal test:
|
||||
1. Add WebKit.framework to test target
|
||||
2. Clean build
|
||||
3. Run tests
|
||||
|
||||
```
|
||||
Dispatch hyperpowers:test-runner: "Run: swift test"
|
||||
Result: ✓ All tests pass
|
||||
```
|
||||
|
||||
**Phase 4: Implementation**
|
||||
|
||||
1. Test already exists (the failing test)
|
||||
2. Fix: Framework linked
|
||||
3. Verification: Tests pass
|
||||
4. Update bd:
|
||||
```bash
|
||||
bd close bd-123
|
||||
```
|
||||
|
||||
**Time:** 15 minutes systematic vs. 2+ hours guessing
|
||||
|
||||
## Remember
|
||||
|
||||
- **Tools make debugging faster**, not slower
|
||||
- **hyperpowers:internet-researcher** can find solutions in seconds
|
||||
- **Automated debugging works** - lldb batch mode, strace, instrumentation
|
||||
- **hyperpowers:codebase-investigator** finds patterns you'd miss
|
||||
- **hyperpowers:test-runner agent** keeps context clean
|
||||
- **Evidence before fixes**, always
|
||||
|
||||
**Prefer automated tools:**
|
||||
1. lldb batch mode - non-interactive variable inspection
|
||||
2. strace/dtrace - system call tracing
|
||||
3. Instrumentation - logging Claude can add
|
||||
4. Interactive debugger - only when automated tools insufficient
|
||||
|
||||
95% faster to investigate systematically than to guess-and-check.
|
||||
Reference in New Issue
Block a user