# Vsintegration Ide Debugging

> Fix F# debugging issues (breakpoints, .pdb, sequence points). Build, run VS integration tests, inspect IL/PDB.

- Skill: `dotnet/vsintegration-ide-debugging` (Agent Skill)
- Install (CLI): `npx skillmds@latest add dotnet/vsintegration-ide-debugging`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dotnet/vsintegration-ide-debugging/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: .NET (Microsoft) (https://skillmd.com/u/dotnet)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/dotnet/vsintegration-ide-debugging

---


# VS Integration Debugging

## Build
`.\Build.cmd -c Debug`

## Run tests
xUnit2 VS Extensibility — not `dotnet test`.
```powershell
$runner = (Get-ChildItem "$env:NUGET_PACKAGES\xunit.runner.console" -Recurse -Filter xunit.console.exe | Where-Object { $_.FullName -like '*net472*' } | Select-Object -First 1).FullName
& $runner artifacts\bin\FSharp.Editor.IntegrationTests\Debug\net472\FSharp.Editor.IntegrationTests.exe -parallel none -nologo
```

## Key paths
- Tests + infra: `vsintegration/tests/FSharp.Editor.IntegrationTests/`
- Sequence point emit: `src/Compiler/CodeGen/IlxGen.fs` → `EmitDebugPoint`, `EnsureNopBetweenDebugPoints`
- PDB writer: `src/Compiler/AbstractIL/ilwritepdb.fs`
- Collection lowering: `src/Compiler/Optimize/LowerComputedCollections.fs`
- Local compiler setup: `UseLocalCompiler.Directory.Build.props`

## Core rule
VS debugger binds breakpoints only at **stack-empty** IL offsets. Move the sequence point — never add runtime instructions.

