# Vsintegration Ide Debugging

> Fix F# debugging issues (breakpoints, .pdb, sequence points). Build, run VS integration tests, inspect IL/PDB. Use when this capability is needed.

- Skill: `tomevault-io/vsintegration-ide-debugging` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/vsintegration-ide-debugging`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/vsintegration-ide-debugging/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/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.

---
> Source: [dotnet/fsharp](https://github.com/dotnet/fsharp) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-19 -->

