dotnet / dotnet/runtime

[clr-interp] Implement interpreter debugging support in CoreCLR

Open
#120,842 4 comments 0 reactions 1 assignee Claimed by @matouskozak View on GitHub
area-CodeGen-Interpreter-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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.