[clr-interp] Implement interpreter debugging support in CoreCLR
- Dominant language
- C#
- Stars
- 18.3k
- Forks
- 5.6k
- PR merge metrics
- PR metrics pending
Description
## Description
This issue outlines work for debugging support on the CoreCLR interpreter.
### Goals (functional)
- [x] User breakpoint support (`System.Diagnostics.Debugger.Break()`) https://github.com/dotnet/runtime/pull/121911
- [x] Regular breakpoints set via IDE and stepping https://github.com/dotnet/runtime/pull/123251
- [x] Variables, stack traces: works
- [x] Exception unwinding
- [x] Enable debugger tests in CI running with CoreCLR interpreter on desktop
- Identified failures: `setip`, exceptions, functional eval, stackwalking, TBA
- [x] https://github.com/dotnet/runtime/pull/126954
- [x] https://github.com/dotnet/runtime/pull/127757
- [x] https://github.com/dotnet/runtime/pull/127754
- [x] https://github.com/dotnet/runtime/pull/127753
### Other
- [x] https://github.com/dotnet/runtime/pull/127760
- [ ] https://github.com/dotnet/runtime/issues/124499
- [ ] https://github.com/dotnet/runtime/issues/124546
- [ ] Refactor current JIT debugger support to use the new HardwareExecutionControl abstraction
- [ ] Remove interpreter specific condition checks (e.g., `if (pJitManager != NULL && pJitManager == ExecutionManager::GetInterpreterJitManager())`)
- How to handle scenarios where no JitManager is available
- [ ] WASM support for interpreter debugging
- [ ] https://github.com/dotnet/runtime/issues/125050
- [x] EnC support
Contributor guide
Assessment
This issue has not been assessed yet.