dbg CLI debugger ile uygulamalarınızı hata ayıklayın. Node.js (V8/CDP), Bun (WebKit/JSC), Python (debugpy/DAP), Java (JDWP/DAP) ve LLDB (DAP) aracılığıyla native kod desteği sunur. Kodda adım adım ilerleyerek runtime hatalarını araştırma, belirli execution noktalarında değişken değerlerini inceleme, breakpoint ve conditional breakpoint ayarlama, paused context içinde expression değerlendirme gibi durumlarda kullanın.
cd ~/.claude/skills
git clone https://github.com/theodo-group/debug-that.git debug-that mkdir -p ~/.claude/skills/dbg
curl -fsSL https://raw.githubusercontent.com/theodo-group/debug-that/HEAD/.claude/skills/debug-that/SKILL.md \
-o ~/.claude/skills/dbg/SKILL.md dbg bir CLI hata ayıklayıcısıdır ve Node.js (V8/CDP), Bun (WebKit/JSC), Java (JDWP/DAP üzerinden) ve native code (C/C++/Rust/Swift LLDB/DAP üzerinden) destekler. Tüm entityler için kısa @refs kullanır -- uzun ID'ler yerine bunları kullanın.
| Runtime | Dil | Başlatma örneği |
|---|---|---|
| Node.js | JavaScript | dbg launch --brk node app.js |
| tsx / ts-node | TypeScript | dbg launch --brk tsx src/app.ts |
| Bun | JavaScript / TypeScript | dbg launch --brk bun app.ts |
| LLDB | C / C++ / Rust / Swift | dbg launch --brk --runtime lldb ./program |
| JDWP | Java | dbg launch --brk --runtime java ./program |
Runtime, JS runtime'ları için başlatma komutundan otomatik olarak algılanır. Native code için --runtime lldb kullanın.
# 1. İlk satırda breakpoint ile başlat
dbg launch --brk node app.js
# Veya: dbg launch --brk bun app.ts
# Veya: dbg launch --brk --runtime lldb ./my_program
# Veya --inspect flag ile çalışan bir process'e bağlan
dbg attach 9229
# 2. Şüpheli yerlerde breakpoint ayarla
dbg break src/handler.ts:42
dbg break src/utils.ts:15 --condition "count > 10"
# 3. Breakpoint'e kadar çalıştır
dbg continue
# 4. State'i incele (konum, kaynak, yerel değişkenler, stack gösterir)
dbg state
# 5. Değerleri derinlemesine incele
dbg props @v1 # object'i genişlet
dbg props @v1 --depth 3 # 3 seviye iç içe genişlet
dbg eval "x + 1"
# 6. Düzelt ve doğrula (sadece JS/TS)
dbg set count 0 # değişkeni değiştir
dbg hotpatch src/utils.js # canlı düzenle (diskteki dosyayı okur)
dbg continue # düzeltmeyi doğrula
dbg launch --brk node app.js
dbg break src/api.ts:50 # şüpheli satır
dbg break src/api.ts:60 --condition "!user" # koşullu
dbg continue
dbg vars # yerel değişkenleri kontrol et
dbg eval "JSON.stringify(req.body)" # derinlemesine incele
dbg step over # bir satır ilerle
dbg state # yeni state'i gör
dbg launch --brk --runtime lldb ./my_program
dbg break main.c:42
dbg break-fn main # function breakpoint (sadece DAP)
dbg continue
dbg vars # yerel değişkenleri incele
dbg eval "array[i]" # ifadeyi değerlendir
dbg step into # fonksiyona adım at
# Inspector etkinleştirilmiş şekilde başlat
node --inspect app.js
# Veya: bun --inspect app.ts
# Sonra bağlan
dbg attach 9229
dbg state
dbg logpoint src/auth.ts:20 "login attempt: ${username}"
dbg logpoint src/auth.ts:45 "auth result: ${result}"
dbg continue
dbg console # günlüğe yazılan çıktıyı gör
dbg catch uncaught # yakalanamayan exceptionlarda durdur
dbg continue # exception'a kadar çalıştır
dbg state # fırlattığı yeri gör
dbg eval "err.message" # hatayı incele
dbg stack # tam call stack
dbg otomatik olarak source map'ler üzerinden .ts yollarını çözer. .ts yollarını kullanarak breakpoint ayarlayın, çıktıda .ts kaynak kodunu görün. Derlenmiş .js kodunu görmek için --generated kullanın.
Her çıktı kısa refs atar. Bunları her yerde kullanın:
@v1..@vN -- değişkenler: dbg props @v1, dbg set @v2 true@f0..@fN -- stack frame'leri: dbg eval --frame @f1 "this"BP#1..N -- breakpoint'ler: dbg break-rm BP#1, dbg break-toggle BP#1LP#1..N -- logpoint'ler: dbg break-rm LP#1@v/@f ref'leri her duruşta sıfırlanır. BP#/LP# kaldırılana kadar devam eder.
--json -- herhangi bir komutta makine tarafından okunabilir JSON çıktı--session NAME -- belirli bir session'ı hedefle (varsayılan: "default")--runtime NAME -- debug adapter'ı seç (örn. native code için lldb)--generated -- source map'leri atla, derlenmiş JS göster (state/source/stack'te)Tam komut detayları ve seçenekleri için references/commands.md bölümüne bakın.
dbg state adımlamadan sonra her zaman konum + kaynak + yerel değişkenleri gösterir -- genellikle yeterli bağlamdbg state -c sadece kaynak, -v sadece değişkenler, -s sadece stack için -- token'ları kurtarındbg eval await destekler -- async inceleme için faydalı (JS/TS)dbg blackbox "node_modules/**" -- bağımlılıklara adım atmayı atladbg hotpatch file dosyayı diskten okur -- önce dosyayı düzenleyin, sonra hotpatch yapın (sadece JS/TS)dbg break-fn funcName -- function breakpoint'ler DAP runtime'larında çalışır (LLDB)continue, step, pause, run-to) otomatik olarak status döndürürdbg stop hata ayıklanan process'i ve daemon'u öldürür2 veya daha fazla bağımsız görevin paralel olarak yürütülebileceği ve aralarında state paylaşımı ya da sıralı bağımlılık olmadığı durumlarda kullanın.
Ayrı bir oturumda inceleme kontrol noktaları ile yürütülecek yazılı bir uygulama planınız olduğunda kullanın.
Mevcut oturumda bağımsız görevlerle uygulama planlarını yürütürken kullanın
Herhangi bir hata, test başarısızlığı veya beklenmeyen davranışla karşılaştığınızda, çözüm önerisi sunmadan önce kullanın.
Herhangi bir feature ya da bugfix uygulamaya başlamadan önce kullanın.
Yeni beceriler oluştururken, mevcut becerileri düzenlerken veya dağıtımdan önce becerileri doğrularken kullanın.