You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current debug symbols implementation has some weak points:
It uses SQLite to store the debug symbols, which is native, and forces us to have .
It depends on getting debug info from pdb files at compile time, which is wrong. The debug symbols should be loaded at debug time, as they can come from anywhere.
The following changes should be done on the debug symbols implementation (probably both at the same time):
We can replace SQLite with LiteDB, which is fully managed, and has good performance.
The debug symbols should contain debug info that allows the debug engine to retrieve debug data from the pdb. The following data is important:
Mapping between static fields and the corresponding labels (already present)
Mapping between methods and the corresponding labels, including IL opcode labels (already present)
Stack offsets for arguments and locals (already present)
Field offsets (already present)
Type, method and field metadata tokens, and generic arguments (new)
So sequence points and source documents would no longer be present in the debug symbols, and would be loaded by the debug engine. It would be possible to debug any assembly, including the runtime ones.
The text was updated successfully, but these errors were encountered:
The current debug symbols implementation has some weak points:
The following changes should be done on the debug symbols implementation (probably both at the same time):
We can replace SQLite with LiteDB, which is fully managed, and has good performance.
The debug symbols should contain debug info that allows the debug engine to retrieve debug data from the pdb. The following data is important:
So sequence points and source documents would no longer be present in the debug symbols, and would be loaded by the debug engine. It would be possible to debug any assembly, including the runtime ones.
The text was updated successfully, but these errors were encountered: