Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The racket-debug-run-to-here doesn't work #597

Closed
chansey97 opened this issue Feb 17, 2022 · 11 comments
Closed

The racket-debug-run-to-here doesn't work #597

chansey97 opened this issue Feb 17, 2022 · 11 comments

Comments

@chansey97
Copy link

chansey97 commented Feb 17, 2022

Hi, I watched the video and tried the debugging mechanism in racket-mode.

For example,

#lang racket

(define (f x)
  (define ns (list 1 2 3 4))
  (for/sum ((n (in-list ns)))
    (+ x n)))

(let ()
  (f 41)
  (f 222))

I press M-x racket-run-with-debugging and press "SPACE" to step. It works fine. Thank you for this great work.

However, racket-debug-run-to-here doesn't seem to work? In the debug mode, I placed the mouse cursor at (f 41) | and press h, the debugger stopped.

My racket-mode version is racket-mode-20220216.1917 from elpa, operation system windows7, Racket v8.0 [bc].

Related issue: #425

racket-bug-report:

((alist-get 'racket-mode package-alist))
((emacs-version "27.2")
 (system-type windows-nt)
 (x-gtk-use-system-tooltips UNDEFINED)
 (major-mode racket-mode)
 (racket--el-source-dir "c:/Users/Chansey/AppData/Roaming/.emacs.d/site-lisp/racket-mode-20220216.1917/")
 (racket--rkt-source-dir "c:/Users/Chansey/AppData/Roaming/.emacs.d/site-lisp/racket-mode-20220216.1917/racket/")
 (racket-program "C:\\Program Files\\Racket\\Racket.exe")
 (racket-command-timeout 10)
 (racket-path-from-emacs-to-racket-function UNDEFINED)
 (racket-path-from-racket-to-emacs-function UNDEFINED)
 (racket-browse-url-function racket-browse-url-using-temporary-file)
 (racket-documentation-search-location "https://docs.racket-lang.org/search/index.html?q=%s")
 (racket-xp-after-change-refresh-delay 1)
 (racket-xp-mode-lighter
  (:eval
   (racket--xp-mode-lighter)))
 (racket-xp-highlight-unused-regexp "^[^_]")
 (racket-repl-buffer-name-function nil)
 (racket-submodules-to-run
  ((test)
   (main)))
 (racket-memory-limit 2048)
 (racket-error-context medium)
 (racket-repl-history-directory "~/.emacs.d/racket-mode/")
 (racket-history-filter-regexp "\\`\\s *\\'")
 (racket-images-inline t)
 (racket-imagemagick-props nil)
 (racket-images-keep-last 100)
 (racket-images-system-viewer "display")
 (racket-pretty-print t)
 (racket-use-repl-submit-predicate nil)
 (racket-pretty-print t)
 (racket-indent-curly-as-sequence t)
 (racket-indent-sequence-depth 0)
 (racket-pretty-lambda nil)
 (racket-smart-open-bracket-enable nil)
 (racket-module-forms "\\s(\\(?:module[*+]?\\|library\\)")
 (racket-logger-config
  ((cm-accomplice . warning)
   (GC . info)
   (module-prefetch . warning)
   (optimizer . info)
   (racket/contract . error)
   (sequence-specialization . info)
   (* . fatal)))
 (racket-show-functions
  (racket-show-pseudo-tooltip)))
(enabled-minor-modes
 (auto-composition-mode)
 (auto-compression-mode)
 (auto-encryption-mode)
 (auto-fill-mode)
 (auto-save-mode)
 (back-button-mode)
 (blink-cursor-mode)
 (cl-old-struct-compat-mode)
 (column-number-mode)
 (company-mode)
 (company-quickhelp-local-mode)
 (company-quickhelp-mode)
 (cua-mode)
 (delete-selection-mode)
 (desktop-save-mode)
 (electric-indent-mode)
 (file-name-shadow-mode)
 (font-lock-mode)
 (global-auto-revert-mode)
 (global-company-mode)
 (global-eldoc-mode)
 (global-font-lock-mode)
 (global-hl-line-mode)
 (global-linum-mode)
 (global-page-break-lines-mode)
 (global-symbol-overlay-mode)
 (global-undo-tree-mode)
 (goto-address-prog-mode)
 (hs-minor-mode)
 (ivy-mode)
 (line-number-mode)
 (linum-mode)
 (menu-bar-mode)
 (mode-icons-mode)
 (mouse-wheel-mode)
 (paredit-mode)
 (popwin-mode)
 (projectile-mode)
 (racket-xp-mode)
 (recentf-mode)
 (save-place-mode)
 (savehist-mode)
 (semantic-minor-modes-format)
 (shell-dirtrack-mode)
 (show-paren-mode)
 (symbol-overlay-mode)
 (tabbar-mode)
 (tabbar-mwheel-mode)
 (tool-bar-mode)
 (tooltip-mode)
 (transient-mark-mode)
 (treemacs-filewatch-mode)
 (treemacs-fringe-indicator-mode)
 (undo-tree-mode)
 (yas-global-mode)
 (yas-minor-mode))
(disabled-minor-modes
 (abbrev-mode)
 (ace-window-display-mode)
 (ace-window-mode)
 (auto-fill-function)
 (auto-revert-mode)
 (auto-revert-tail-mode)
 (auto-save-visited-mode)
 (avy-linum-mode)
 (buffer-face-mode)
 (buffer-read-only)
 (company-search-mode)
 (compilation-minor-mode)
 (compilation-shell-minor-mode)
 (completion-in-region-mode)
 (counsel-mode)
 (defining-kbd-macro)
 (diff-auto-refine-mode)
 (diff-minor-mode)
 (dired-hide-details-mode)
 (drag-stuff-global-mode)
 (drag-stuff-mode)
 (eldoc-mode)
 (electric-layout-mode)
 (electric-quote-mode)
 (flymake-mode)
 (global-prettify-symbols-mode)
 (global-semantic-highlight-edits-mode)
 (global-semantic-highlight-func-mode)
 (global-semantic-show-parser-state-mode)
 (global-semantic-show-unmatched-syntax-mode)
 (global-semantic-stickyfunc-mode)
 (global-visual-line-mode)
 (goto-address-mode)
 (haskell-indentation-mode)
 (hl-line-mode)
 (horizontal-scroll-bar-mode)
 (ibuffer-auto-mode)
 (isearch-mode)
 (jit-lock-debug-mode)
 (next-error-follow-minor-mode)
 (outline-minor-mode)
 (overwrite-mode)
 (page-break-lines-mode)
 (paragraph-indent-minor-mode)
 (prettify-symbols-mode)
 (racket-debug-mode)
 (racket-smart-open-bracket-mode)
 (semantic-highlight-edits-mode)
 (semantic-highlight-func-mode)
 (semantic-mode)
 (semantic-show-parser-state-mode)
 (semantic-show-unmatched-syntax-mode)
 (semantic-stickyfunc-mode)
 (sh-electric-here-document-mode)
 (show-smartparens-global-mode)
 (show-smartparens-mode)
 (size-indication-mode)
 (smartparens-global-mode)
 (smartparens-global-strict-mode)
 (smartparens-mode)
 (smartparens-strict-mode)
 (sql-upcase-mode)
 (tab-bar-history-mode)
 (tab-bar-mode)
 (tabbar-local-mode)
 (temp-buffer-resize-mode)
 (text-scale-mode)
 (treemacs-follow-mode)
 (treemacs-git-mode)
 (treemacs-tag-follow-mode)
 (undo-tree-visualizer-selection-mode)
 (unify-8859-on-decoding-mode)
 (unify-8859-on-encoding-mode)
 (url-handler-mode)
 (use-hard-newlines)
 (view-mode)
 (visible-mode)
 (visual-line-mode)
 (window-divider-mode)
 (xref-etags-mode))
@chansey97 chansey97 added the bug label Feb 17, 2022
@greghendershott
Copy link
Owner

The space after that closing paren in (f 41) is not a breakable position. It's just whitespace.

If you use the nand p keys (next and previous), it will move among currently breakable positions. At any of those, you can press h to "run to here".

From that you'll see that it can break on the closing paren in (f 41).


Does this help?

Admittedly this might not be the most intuitive/discoverable UX, so, I'm definitely open to suggestions how to improve.

@chansey97
Copy link
Author

Do you mean after entering debug mode (i.e. press M-x racket-run-with-debugging), then press n and p?

For the example in the topic, it told me "No breakable positions in this buffer".

@greghendershott
Copy link
Owner

Do you mean after entering debug mode (i.e. press M-x racket-run-with-debugging), then press n and p?

Yes.

For the example in the topic, it told me "No breakable positions in this buffer".

Using your example file, my steps:

  1. M-x racket-run-with-debugging.
  2. Point moves to the ( in (let __).
  3. Press n.
  4. Point moves to the ) in (f 41).
  5. Press h.
  6. It runs to and breaks there; displays => (values 174).

@chansey97
Copy link
Author

chansey97 commented Feb 18, 2022

I have followed your steps, but Emacs complained: No breakable positions in this buffer, then exited the debug mode.

debug

Racket Logger

racket-logger-config:
((cm-accomplice . warning)
 (GC . info)
 (module-prefetch . warning)
 (optimizer . info)
 (racket/contract . error)
 (sequence-specialization . info)
 (* . fatal))
[   info] racket-mode: Accepting TCP connections from host "127.0.0.1" on port 22442
[  debug] racket-mode: (call-with-session-context '() #<procedure:command> '((check-syntax "e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt" "#lang racket\n\n(define (f x)\n  (define ns (list 1 2 3 4))\n  (for/sum ((n (in-list ns)))\n    (+ x n)))\n\n(let ()\n  (f 41)\n  (f 222))\n"))): no specific session
[  debug] racket-mode: (call-with-session-context '() #<procedure:command> '((module-names))): no specific session
[  debug] racket-mode: (call-with-session-context '() #<procedure:command> '((check-syntax "e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt" "#lang racket\n\n(define (f x)\n  (define ns (list 1 2 3 4))\n  (for/sum ((n (in-list ns)))\n    (+ x n)))\n\n(let ()\n  (f 41)\n  (f 222))\n"))): no specific session
[  debug] racket-mode: (call-with-session-context '() #<procedure:command> '((module-names))): no specific session
[  debug] racket-mode: (call-with-session-context '() #<procedure:command> '((check-syntax "e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt" "#lang racket\n\n(define (f x)\n  (define ns (list 1 2 3 4))\n  (for/sum ((n (in-list ns)))\n    (+ x n)))\n\n(let ()\n  (f 41)\n  (f 222))\n"))): no specific session
[  debug] racket-mode: (call-with-session-context '() #<procedure:command> '((module-names))): no specific session
[   info] racket-mode: '(6 "*" (module-names))
[   info] racket-mode: '(5 "*" (check-syntax "e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt" "#lang racket\n\n(define (f x)\n  (define ns (list 1 2 3 4))\n  (for/sum ((n (in-lis⋯"))
[   info] racket-mode: '(4 "*" (module-names))
[   info] racket-mode: '(3 "*" (check-syntax "e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt" "#lang racket\n\n(define (f x)\n  (define ns (list 1 2 3 4))\n  (for/sum ((n (in-lis⋯"))
[   info] racket-mode: '(2 "*" (module-names))
[   info] racket-mode: '(1 "*" (check-syntax "e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt" "#lang racket\n\n(define (f x)\n  (define ns (list 1 2 3 4))\n  (for/sum ((n (in-lis⋯"))
[   info] racket-mode: '(7 "*" (logger ((cm-accomplice . warning) (GC . info) (module-prefetch . warning) (optimizer . info) (racket/contract . error) (sequence-specialization . info) (* . fatal))))

Which Racket version do you use? Any suggestion for debugging the issue?

@greghendershott
Copy link
Owner

At the moment I'm using Racket built from source, which is ~= Racket 8.4.


Not to go off on a tangent (although maybe it matters?) I'm surprised by your *Racket Logger* output:

  • It doesn't show some commands like debug-disable, run, and debug-resume (sent by the Emacs front end to the Racket back end) which I would expect to see when you are step debugging.

  • More basically I'm super surprised why you are seeing any racket-mode topics in the logger window even though you don't have that topic in the value of racket-logger-config shown at the start. Given that the default level (*) is fatal, you should not have any of those racket-mode topic logger outputs at the info or debug level.

FWIW my logger output -- with racket-mode topic set to debug -- is something like this example:

racket-logger-config:
((racket-mode . debug)
 (cm-accomplice . warning)
 (GC . info)
 (module-prefetch . warning)
 (optimizer . info)
 (racket/contract . error)
 (sequence-specialization . info)
 (* . fatal))
[   info] racket-mode: '(918 "repl-session-1645141303316.051-1" (debug-disable))
[   info] racket-mode: '(919 "repl-session-1645141303316.051-1" (run ("/var/tmp/issue-597.rkt") () 2048 #t 90 14 debug () ("/var/tmp/issue-597.rkt" )))
[  debug] racket-mode: (set-session! "repl-session-1645141303316.051-1" #<path:/var/tmp/issue-597.rkt>) => sessions: (hash "repl-session-1644957377437.8474-0" (session #<thread:eventspace-handler-thread-proc> #<channel> #<path:/home/greg/src/elisp/racket-mode/racket/hash-lang.rkt> #<namespace:"/home/greg/src/elisp/racket-mode/racket/hash-lang.rkt">) "repl-session-1645141303316.051-1" (session #<thread:eventspace-handler-thread-proc> #<channel> #<path:/var/tmp/issue-597.rkt> #<namespace>))
[   info] racket-mode: '(920 "repl-session-1645141303316.051-1" (debug-resume (all (43 before))))
[   info] racket-mode: '(921 "repl-session-1645141303316.051-1" (debug-resume (("/var/tmp/issue-597.rkt" . 118) (44 before))))

@greghendershott
Copy link
Owner

Another debugging idea: At step 2 of these steps, what if you:

  • C-h v.
  • Enter racket--debug-break-positions.
  • Let me know, please, the value?

For me it is something like:

racket--debug-break-positions is a variable defined in
racket-debug.el.

Value
(("/var/tmp/issue-597.rkt" 98 118 15 113 129 55 103 42 122 60 92))

@greghendershott
Copy link
Owner

OK I have a commit I believe will fix this. Although I haven't tested it yet on Windows, it definitely fixes what I think is a similar problem when using a remote back end.

I plan to merge this after it passes CI. At that point, I'd be grateful if you try it on Windows and confirm it there, too. If not, please feel free to re-open this issue, and I'll dig deeper hands-on with Windows.

@chansey97
Copy link
Author

chansey97 commented Feb 19, 2022

I tried your patch. It has the same problem, i.e. pressing "SPACE" to step is OK, but can't do racket-debug-next-breakable or racket-debug-run-to-here.

Let me know, please, the value?

Before your patch:

racket--debug-break-positions is a variable defined in ‘racket-debug.el’.
Its value is
(("e:\work-pl\racket\code\racket-mode-tests\test.rkt" 129 98 42 15 103 92 60 113 118 122 55))

After your patch:

racket--debug-break-positions is a variable defined in ‘racket-debug.el’.
Its value is
(("e:/work-pl/racket/code/racket-mode-tests/test.rkt" 129 98 42 15 103 92 60 113 118 122 55))

I also tried to set racket-logger-config in my init.el as you:

(setq racket-logger-config '((racket-mode . debug)
                            (cm-accomplice . warning)
                            (GC . info)
                            (module-prefetch . warning)
                            (optimizer . info)
                            (racket/contract . error)
                            (sequence-specialization . info)
                            (* . fatal)))

The following is the logs in Racket Logger:

Initial (it seems that the Racket Logger will open automatically as long as a ,rkt file open)

racket-logger-config:
((racket-mode . debug)
 (cm-accomplice . warning)
 (GC . info)
 (module-prefetch . warning)
 (optimizer . info)
 (racket/contract . error)
 (sequence-specialization . info)
 (* . fatal))
[   info] racket-mode: '(4 "*" (module-names))
[   info] racket-mode: '(3 "*" (check-syntax "e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt" "#lang racket\n\n(define (f x)\n  (define ns (list 1 2 3 4))\n  (for/sum ((n (in-lis⋯"))
[   info] racket-mode: '(2 "*" (module-names))
[   info] racket-mode: '(1 "*" (check-syntax "e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt" "#lang racket\n\n(define (f x)\n  (define ns (list 1 2 3 4))\n  (for/sum ((n (in-lis⋯"))
[   info] racket-mode: Accepting TCP connections from host "127.0.0.1" on port 54966
[   info] racket-mode: '(5 "*" (logger ((racket-mode . debug) (cm-accomplice . warning) (GC . info) (module-prefetch . warning) (optimizer . info) (racket/contract . error) (sequence-specialization . info) (* . fatal))))
[  debug] racket-mode: (call-with-session-context '() #<procedure:command> '((check-syntax "e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt" "#lang racket\n\n(define (f x)\n  (define ns (list 1 2 3 4))\n  (for/sum ((n (in-list ns)))\n    (+ x n)))\n\n(let ()\n  (f 41)\n  (f 222))\n\n\n"))): no specific session
[  debug] racket-mode: (call-with-session-context '() #<procedure:command> '((module-names))): no specific session
[  debug] racket-mode: (call-with-session-context '() #<procedure:command> '((check-syntax "e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt" "#lang racket\n\n(define (f x)\n  (define ns (list 1 2 3 4))\n  (for/sum ((n (in-list ns)))\n    (+ x n)))\n\n(let ()\n  (f 41)\n  (f 222))\n\n\n"))): no specific session
[  debug] racket-mode: (call-with-session-context '() #<procedure:command> '((module-names))): no specific session
[   info] racket-mode: cancel #<thread:'(3 "*" (check-syntax "e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt" "#lang racket\n\n(define (f x)\n  (define ns (list 1 2 3 4))\n  (for/sum ((n (in-lis⋯"))>
[  debug] racket-mode: (current-memory-use) 181399144
[  debug] racket-mode:  359 cpu |  398 real |   80 gc <= total e:\work-pl\racket\code\racket-mode-tests\test.rkt
[  debug] racket-mode:   15 cpu |   25 real |    0 gc <= imports
[  debug] racket-mode:   16 cpu |   18 real |   16 gc <= get-annotations
[  debug] racket-mode:    0 cpu |    0 real |    0 gc <= defs/uses
[  debug] racket-mode:    0 cpu |    0 real |    0 gc <= drracket/check-syntax/expansion-completed
[  debug] racket-mode:  172 cpu |  196 real |   32 gc <= drracket/check-syntax/expanded-expression
[  debug] racket-mode: (current-memory-use) 161496064

After (racket-run), new logs:

[  debug] racket-mode: (call-with-session-context '() #<procedure:command> '((repl-tcp-port-number))): no specific session
[   info] racket-mode: '(7 "*" (repl-tcp-port-number))
[  debug] racket-mode: (call-with-session-context '() #<procedure:command> '((debug-disable))): no specific session
[   info] racket-mode: '(6 "*" (debug-disable))
[  debug] racket-mode: (set-session! "repl-session-1645283618938.5964-0" #f #f) => sessions: (hash "repl-session-1645283618938.5964-0" (session #<thread:eventspace-handler-thread-proc> #<channel> #f #<namespace> #f))
[  debug] racket-mode: (set-session! "repl-session-1645283618938.5964-0" #f #f) => sessions: (hash "repl-session-1645283618938.5964-0" (session #<thread:eventspace-handler-thread-proc> #<channel> #f #<namespace> #f))
[   info] racket-mode: start "repl-session-1645283618938.5964-0"
[  debug] racket-mode: (call-with-session-context "repl-session-1645283618938.5964-0" #<procedure:command> '((run ("e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt") ((test) (main)) 2048 #t 178 8 medium () ()))) => (session #<thread:eventspace-handler-thread-proc> #<channel> #f #<namespace> #f)
[   info] racket-mode: '(8 "repl-session-1645283618938.5964-0" (run ("e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt") ((test) (main)) 2048 #t 178 8 medium () ()))
[  debug] racket-mode: (set-session! "repl-session-1645283618938.5964-0" #<path:e:\work-pl\racket\code\racket-mode-tests\test.rkt> #f) => sessions: (hash "repl-session-1645283618938.5964-0" (session #<thread:eventspace-handler-thread-proc> #<channel> #<path:e:\work-pl\racket\code\racket-mode-tests\test.rkt> #<namespace> #f))
[  debug] racket-mode: (set-session! "repl-session-1645283618938.5964-0" #<path:e:\work-pl\racket\code\racket-mode-tests\test.rkt> #f) => sessions: (hash "repl-session-1645283618938.5964-0" (session #<thread:eventspace-handler-thread-proc> #<channel> #<path:e:\work-pl\racket\code\racket-mode-tests\test.rkt> #<namespace:"e:\work-pl\racket\code\racket-mode-tests\test.rkt"> #f))
[  debug] racket-mode: (call-with-session-context "repl-session-1645283618938.5964-0" #<procedure:command> '((syms))) => (session #<thread:eventspace-handler-thread-proc> #<channel> #<path:e:\work-pl\racket\code\racket-mode-tests\test.rkt> #<namespace:"e:\work-pl\racket\code\racket-mode-tests\test.rkt"> #f)
[   info] racket-mode: '(9 "repl-session-1645283618938.5964-0" (syms))

After racket-run-with-debugging, new logs:

[  debug] racket-mode: (set-session! "repl-session-1645283618938.5964-0" #<path:e:\work-pl\racket\code\racket-mode-tests\test.rkt> #f) => sessions: (hash "repl-session-1645283618938.5964-0" (session #<thread:eventspace-handler-thread-proc> #<channel> #<path:e:\work-pl\racket\code\racket-mode-tests\test.rkt> #<namespace> #f))
[  debug] racket-mode: (call-with-session-context "repl-session-1645283618938.5964-0" #<procedure:command> '((run ("e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt") ((test) (main)) 2048 #t 178 8 debug () ("e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt" "e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt")))) => (session #<thread:eventspace-handler-thread-proc> #<channel> #<path:e:\work-pl\racket\code\racket-mode-tests\test.rkt> #<namespace:"e:\work-pl\racket\code\racket-mode-tests\test.rkt"> #f)
[   info] racket-mode: '(11 "repl-session-1645283618938.5964-0" (run ("e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt") ((test) (main)) 2048 #t 178 8 debug () ("e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt" "e:\\work-pl\\racket\\code\\racket-mode-tests\\test.rkt")))
[  debug] racket-mode: (call-with-session-context "repl-session-1645283618938.5964-0" #<procedure:command> '((debug-disable))) => (session #<thread:eventspace-handler-thread-proc> #<channel> #<path:e:\work-pl\racket\code\racket-mode-tests\test.rkt> #<namespace:"e:\work-pl\racket\code\racket-mode-tests\test.rkt"> #f)
[   info] racket-mode: '(10 "repl-session-1645283618938.5964-0" (debug-disable))

Press n does not produce any logs.

Place mouse cursor at (f 41|) and execute racket-debug-run-to-here, new logs:

Noticed that after racket-debug-run-to-here, the debug mode exited, i.e. in Racket REPL buffer, the prompt is from [test.rkt:103]> to test.rkt>.

[  debug] racket-mode: (set-session! "repl-session-1645283618938.5964-0" #<path:e:\work-pl\racket\code\racket-mode-tests\test.rkt> #f) => sessions: (hash "repl-session-1645283618938.5964-0" (session #<thread:eventspace-handler-thread-proc> #<channel> #<path:e:\work-pl\racket\code\racket-mode-tests\test.rkt> #<namespace:"e:\work-pl\racket\code\racket-mode-tests\test.rkt"> #f))
[  debug] racket-mode: (call-with-session-context "repl-session-1645283618938.5964-0" #<procedure:command> '((debug-resume (("e:/work-pl/racket/code/racket-mode-tests/test.rkt" . 118) (0 before))))) => (session #<thread:eventspace-handler-thread-proc> #<channel> #<path:e:\work-pl\racket\code\racket-mode-tests\test.rkt> #<namespace> #f)
[   info] racket-mode: '(12 "repl-session-1645283618938.5964-0" (debug-resume (("e:/work-pl/racket/code/racket-mode-tests/test.rkt" . 118) (0 before))))
[  debug] racket-mode: (call-with-session-context "repl-session-1645283618938.5964-0" #<procedure:command> '((syms))) => (session #<thread:eventspace-handler-thread-proc> #<channel> #<path:e:\work-pl\racket\code\racket-mode-tests\test.rkt> #<namespace:"e:\work-pl\racket\code\racket-mode-tests\test.rkt"> #f)
[   info] racket-mode: '(13 "repl-session-1645283618938.5964-0" (syms))

@chansey97
Copy link
Author

No reopen button.

greghendershott added a commit that referenced this issue Feb 20, 2022
Be sure to use racket-file-name-front-to-back on the file name given
to the back end by racket-debug-run-to-here.

Also, although not part of the original bug report, make sure the
breakable positions are sorted. Once upon a time the back end might
have done this but it certainly doesn't today; do so in the front end.
@greghendershott
Copy link
Owner

I'm sorry that didn't resolve it. Thank you for all the additional details.

It looks like commit 52e993f fixed "one half" of the problem for Windows --- the back end notification of the breakable positions includes a file name, which needs to be translated.

But now I see there's also a problem with racket-debug-run-to-here sending a command to the back end --- that includes a file name, which needs to be translated, too.

To address that I pushed to a topic branch commit 1bb7c89. This fixes things fully, for me, when I test it hands-on using Windows.

Before I merge that, I'll wait awhile in case you're willing/able to try that and confirm it works for you, too.

@chansey97
Copy link
Author

It works nicely, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants