| # Debugger internals | |
| It is the debugger's job to convert the debug info into an in-memory representation. | |
| Both the interpretation of the debug info and the in-memory representation are arbitrary; | |
| anything will do, | |
| so long as meaningful information can be reconstructed while the program is running. | |
| The pipeline from raw debug info to usable types can be quite complicated. | |
| Once the information is in a workable format, the debugger front-end then must provide a way to | |
| interpret and display the data, a way for users to interact with it, and an API for extensibility. | |
| Debuggers are vast systems and cannot be covered completely here. | |
| This section will provide a brief overview of the subsystems | |
| directly relevant to the Rust debugging experience. | |
| Microsoft's debugging engine is closed source, so it will not be covered here. |