racket / racket/drracket

Check syntax source to avoid "spurious" steps?

Open
#230 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Racket
Stars
516
Forks
103
PR merge metrics
No merged PRs in 30d

Description

Here should:

        (define annotate-break?
          (let ([pos (syntax-position expr)]
                [src (syntax-source expr)])
            (and src pos

instead be:

        (define annotate-break?
          (let ([pos (syntax-position expr)]
                [src (syntax-source expr)])
            (and src pos
                 (equal? src (syntax-source stx))  ; <== NEW

In other words, check that the source is the same as that for the overall stx given to annotate-stx?

Otherwise, I'm seeing some odd results such as the first step for foo.rkt instead being in something like configure in module-begin from pre-base.rkt. That doesn't make much sense to a user, if a tool steps there. DrRacket doesn't step to the other file, it just does a step that doesn't go anywhere in the file actually being debugged; stepping again eventually reaches a step in the file and that aspect of the UI "comes alive".

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at drracket/gui-debugger/annotator.rkt around line 232 and read how annotate-stx determines annotate-break?. Check the syntax source against the source for the overall stx, then verify that stepping in foo.rkt no longer produces a spurious step into pre-base.rkt or another source file.

Written by the indexing model from the issue text.

Assessment

Domain
devtools
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.