dotnet / dotnet/fsharp

Wrong generated method sequence point ranges

Open
#15,289 0 comments 3 reactions 0 assignees View on GitHub
Area-Debug Bug Impact-Medium
Dominant language
F#
Stars
4.3k
Forks
876
Avg merge
4d 22h
Merged PRs (30d)
144

Description

There is a significant issue in `hwTokenFetch` generation, which makes it very hard, or almost impossible, to debug this function.
https://github.com/dotnet/fsharp/blob/c4ad09a4c68c7a86e3d101b1c2c7e93e47637262/src/Compiler/SyntaxTree/LexFilter.fs#L1217

According to the pdb information, the last sequence point in this method has range at this `when` condition:
https://github.com/dotnet/fsharp/blob/c4ad09a4c68c7a86e3d101b1c2c7e93e47637262/src/Compiler/SyntaxTree/LexFilter.fs#L1985

Here's a [dump](https://gist.github.com/ArseniiCherniaev/c02d89ea208eb060a697f5bdfd5709f6) of sequence points read from the pdb, look for `100718728` metadata token.

Stepping any further in this method is impossible because the debugger can't match subsequent sequence points to the method. Neither Visual Studio, nor Rider can debug this method properly.

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.