Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
novotnyllc avatar

Dotnet Debugging

  • 110 installs
  • 228 repo stars
  • Updated August 3, 2026
  • novotnyllc/dotnet-artisan

Helps with debugging tasks.

About

dotnet-debugging is a Claude Code skill for debugging. It helps solo builders move faster with AI-assisted coding.

  • dotnet-debugging
  • Debugging
  • AI-coding skill

Dotnet Debugging by the numbers

  • 110 all-time installs (skills.sh)
  • +6 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #238 of 596 Debugging skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/novotnyllc/dotnet-artisan --skill dotnet-debugging

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs110
repo stars228
Last updatedAugust 3, 2026
Repositorynovotnyllc/dotnet-artisan

What it does

Helps with debugging tasks.

Files

SKILL.mdMarkdownGitHub ↗

dotnet-debugging

Overview

Windows and Linux/macOS debugging using WinDbg MCP tools (Windows), dotnet-dump, and lldb with SOS (Linux/macOS). Applicable to any application -- native, managed (.NET/CLR), or mixed-mode. Includes container diagnostic patterns for Docker and Kubernetes. Guides investigation of crash dumps, application hangs, high CPU, and memory pressure through structured command packs and report templates.

Platforms: Windows (WinDbg MCP, cdb), Linux/macOS (dotnet-dump, lldb with SOS, createdump, dotnet-monitor).

Routing Table

TopicKeywordsDescriptionCompanion File
MCP setupMCP server, WinDbg, configurationMCP server configurationreferences/mcp-setup.md
MCP accessMCP access, tool IDs, dispatchMCP access patternsreferences/access-mcp.md
Common patternsdebug patterns, SOS, CLRCommon debugging patternsreferences/common-patterns.md
Dump workflowdump file, .dmp, crash dumpDump file analysis workflowreferences/dump-workflow.md
Live attachlive process, cdb, attachLive process attach guidereferences/live-attach.md
Symbolssymbol server, .symfix, PDBSymbol configurationreferences/symbols.md
Sanity checkverify, environment, baselineSanity check proceduresreferences/sanity-check.md
Scenario packscommand pack, triage, workflowScenario command packsreferences/scenario-command-packs.md
Capture playbookscapture, procdump, triggersCapture playbooksreferences/capture-playbooks.md
Report templatediagnostic report, evidenceDiagnostic report templatereferences/report-template.md
Crash triagecrash, exception, access violationCrash triagereferences/task-crash.md
Hang triagehang, deadlock, freezeHang triagereferences/task-hang.md
High-CPU triagehigh CPU, runaway thread, spinHigh-CPU triagereferences/task-high-cpu.md
Memory triagememory leak, heap, LOHMemory leak triagereferences/task-memory.md
Kernel debuggingkernel, BSOD, bugcheckKernel debuggingreferences/task-kernel.md
Unknown triageunknown issue, general triageUnknown issue triagereferences/task-unknown.md
Linux debuggingdotnet-dump, lldb, createdump, containerLinux/macOS debugging, dotnet-dump, lldb SOS, containersreferences/linux-debugging.md

Scope

  • Crash dump analysis (.dmp files) on Windows, Linux, and macOS
  • Live process attach (cdb on Windows, lldb on Linux/macOS)
  • Hang and deadlock diagnosis (thread analysis, lock detection, wait chains)
  • High CPU triage (runaway thread identification)
  • Memory pressure and leak investigation (managed heap, native heap)
  • Kernel dump triage (BSOD / bugcheck analysis, Windows)
  • Container diagnostics (dotnet-dump in Docker/Kubernetes, sidecar patterns)
  • Production diagnostics (dotnet-monitor REST API, trigger-based collection)
  • SOS commands across all platforms (WinDbg, dotnet-dump, lldb)
  • Structured diagnostic reports with stack evidence

Boundary with [skill:dotnet-tooling]

Both skills use overlapping tools (dotnet-dump, dotnet-counters, dotnet-trace) but for different purposes:

ScenarioUse this skill (debugging)Use [skill:dotnet-tooling]
Investigating a crash dump (.dmp)YesNo
"Why did my app crash/hang/OOM?"YesNo
Attaching a debugger to a live processYesNo
"How do I profile my app's performance?"NoYes (profiling)
"How do I reduce GC pressure?"NoYes (gc-memory)
Collecting a dump for later analysisYesNo
Running dotnet-counters to monitor metricsNoYes (profiling)
Analyzing a dump with dotnet-dumpYesNo
Decompiling an assembly to understand behaviorNoYes (ilspy-decompile)

Rule of thumb: if something is broken (crash, hang, deadlock, OOM), route here. If something is slow or needs optimization, route to [skill:dotnet-tooling].

Out of scope

  • Performance profiling (dotnet-counters, dotnet-trace for optimization) -> [skill:dotnet-tooling]
  • GC tuning and managed memory optimization -> [skill:dotnet-tooling]
  • Assembly decompilation (ILSpy) -> [skill:dotnet-tooling]
  • Performance benchmarking and regression detection -> [skill:dotnet-testing]
  • Application-level logging and observability -> [skill:dotnet-devops]
  • Unit/integration test debugging -> [skill:dotnet-testing]

MCP Tool Contract

These tool IDs are the WinDbg MCP server's exported names (single-underscore mcp_...), not the mcp__... dispatch prefix used by some hosts.

OperationPurpose
mcp_mcp-windbg_open_windbg_remoteAttach to a live debug server
mcp_mcp-windbg_open_windbg_dumpOpen a saved dump file
mcp_mcp-windbg_run_windbg_cmdExecute debugger commands
mcp_mcp-windbg_close_windbg_remoteDetach from live session
mcp_mcp-windbg_close_windbg_dumpClose dump session

Diagnostic Workflow

Preflight: Symbols

Before any analysis, configure symbols to get meaningful stacks:

1. Set Microsoft symbol server: .symfix (sets srv* to Microsoft public symbols) 2. Add application symbols: .sympath+ C:\path\to\your\pdbs 3. Reload modules: .reload /f 4. Verify: lm (list modules -- check for "deferred" vs "loaded" status)

Without correct symbols, stacks show raw addresses instead of function names.

Crash Dump Analysis

1. Open dump: mcp_mcp-windbg_open_windbg_dump with dump file path 2. Load SOS for managed code: .loadby sos clr (Framework) or .loadby sos coreclr (.NET Core) 3. Get exception context: !pe (print exception), !analyze -v (automatic analysis) 4. Inspect threads: ~*e !clrstack (all managed stacks), !threads (thread list) 5. Check managed heap: !dumpheap -stat (heap summary), !gcroot <addr> (object roots)

Hang / Deadlock Diagnosis

1. Attach or open dump, load SOS 2. List all threads: !threads, identify waiting threads with !syncblk (sync block table) 3. Detect deadlocks: !dlk (SOS deadlock detection) 4. Inspect thread stacks: ~Ns !clrstack for specific thread N 5. Check wait reasons: !waitchain for COM/RPC chains, !mda for MDA diagnostics

High CPU Triage

1. Attach to live process or collect multiple dumps 10-30 seconds apart 2. Use !runaway to identify threads consuming the most CPU time 3. Inspect hot thread stacks: ~Ns kb (native stack), ~Ns !clrstack (managed stack) 4. Look for tight loops, blocked finalizer threads, or excessive GC

Memory Pressure Investigation

1. Open dump, load SOS 2. Managed heap: !dumpheap -stat (type statistics), !dumpheap -type <TypeName> (filter) 3. Find leaked objects: !gcroot <address> (trace GC roots to pinned or static references) 4. Native heap: !heap -s (heap summary), !heap -l (leak detection) 5. LOH fragmentation: !eeheap -gc (GC heap segments)

Report Template

## Diagnostic Report

**Symptom:** [crash/hang/high-cpu/memory-leak]
**Process:** [name, PID, bitness]
**Dump type:** [full/mini/live-attach]

### Evidence
- Exception: [type and message, or N/A]
- Faulting thread: [ID, managed/native, stack summary]
- Key stacks: [condensed callstack with module!function]

### Root Cause
[Concise analysis backed by stack/heap evidence]

### Recommendations
[Numbered action items]

Guardrails

  • Do not claim certainty without callee-side evidence
  • Do not call it a deadlock unless lock/wait evidence supports it
  • Preserve user privacy: do not include secrets from environment blocks in reports

Cross-references: [skill:dotnet-tooling] for .NET SDK diagnostic tools (references/profiling.md) and GC/memory tuning (references/gc-memory.md).

References

Related skills

Debuggingtesting

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.